Skip to main content

max / pter

1.6 KB · 53 lines History Blame Raw
1 [package]
2 name = "pter"
3 version = "0.2.0"
4 edition = "2024"
5 description = "Plain Text Email Renderer — convert HTML email bodies into readable markdown"
6 license = "MIT"
7 repository = "https://makenot.work/git/max/pter"
8 keywords = ["email", "html", "markdown", "plaintext", "converter"]
9 categories = ["email", "text-processing", "parser-implementations"]
10
11 [dependencies]
12 scraper = "0.27"
13
14 [dev-dependencies]
15 proptest = "1"
16 criterion = { version = "0.8", features = ["html_reports"] }
17
18 [[bench]]
19 name = "convert_bench"
20 harness = false
21
22 [lints.rust]
23 unused = "warn"
24 unreachable_pub = "warn"
25
26 [lints.clippy]
27 pedantic = { level = "warn", priority = -1 }
28 # Allow-list tuned from a measured breakdown across server/multithreaded/pter
29 # (2026-07-22). These are the high-churn / low-signal pedantic lints; everything
30 # else in `pedantic` stays a warning. Keep this block identical across repos.
31 module_name_repetitions = "allow"
32 # Doc lints. No docs-completeness push is underway.
33 missing_errors_doc = "allow"
34 missing_panics_doc = "allow"
35 doc_markdown = "allow"
36 # Numeric casts. Endemic and mostly intentional in size and byte math.
37 cast_possible_truncation = "allow"
38 cast_sign_loss = "allow"
39 cast_precision_loss = "allow"
40 cast_possible_wrap = "allow"
41 cast_lossless = "allow"
42 # Subjective structure and style nags. High churn, low signal.
43 must_use_candidate = "allow"
44 too_many_lines = "allow"
45 struct_excessive_bools = "allow"
46 similar_names = "allow"
47 items_after_statements = "allow"
48 single_match_else = "allow"
49 # Frequent false-positives in TUI and router-heavy code.
50 match_same_arms = "allow"
51 unnecessary_wraps = "allow"
52 type_complexity = "allow"
53