Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
141 lines (133 loc) · 5.69 KB
/
Copy pathCargo.toml
File metadata and controls
141 lines (133 loc) · 5.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
[workspace]
members = ["core", "pattern", "swang", "ui-core", "experiment", "cockpit", "cli", "plugin", "preview"]
# `fuzz/` is an isolated nightly cargo-fuzz crate (ADR-0010); it is
# deliberately not a workspace member so stable `--workspace` builds,
# clippy, and tests never touch it.
# `lab/` is the isolated offline Constraint Lab spike (research tooling per
# the hard-constraint-contract proposal); excluded for the same reason —
# production builds, clippy, and CI never touch it, and its solver
# dependencies never enter the workspace tree.
exclude = ["fuzz", "lab", "census", "migrate", "reachability-lab", "song-curation"]
resolver = "2"
[workspace.package]
version = "0.1.0"
edition = "2021"
rust-version = "1.92"
license = "MIT"
repository = "https://github.com/physshell/griff"
homepage = "https://github.com/physshell/griff"
readme = "README.md"
keywords = ["guitar", "midi", "music", "composition"]
categories = ["multimedia::audio", "command-line-utilities"]
[workspace.dependencies]
midly = "0.5"
thiserror = "2"
clap = { version = "4", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1", features = ["float_roundtrip"] }
proptest = "1"
[profile.release]
lto = "thin"
codegen-units = 1
strip = true
# ---------------------------------------------------------------------------
# Workspace-wide lint policy. Every member opts in via `[lints] workspace = true`.
# Groups are denied wholesale; a curated allow-list covers legitimate patterns.
# Anything outside the allow-list must be fixed or annotated with a local
# `#[allow(...)]` accompanied by a reason comment.
# ---------------------------------------------------------------------------
[workspace.lints.rust]
unsafe_code = "forbid"
missing_debug_implementations = "warn"
missing_copy_implementations = "warn"
unreachable_pub = "warn"
trivial_casts = "warn"
trivial_numeric_casts = "warn"
unused_import_braces = "warn"
unused_lifetimes = "warn"
unused_qualifications = "warn"
keyword_idents = { level = "warn", priority = -1 }
let_underscore_drop = "warn"
macro_use_extern_crate = "warn"
meta_variable_misuse = "warn"
non_ascii_idents = "warn"
single_use_lifetimes = "warn"
variant_size_differences = "warn"
rust_2018_idioms = { level = "warn", priority = -1 }
future_incompatible = { level = "warn", priority = -1 }
nonstandard_style = { level = "warn", priority = -1 }
[workspace.lints.rustdoc]
broken_intra_doc_links = "warn"
private_intra_doc_links = "warn"
invalid_codeblock_attributes = "warn"
bare_urls = "warn"
[workspace.lints.clippy]
# Whole groups denied. `priority = -1` lets per-lint entries below override.
all = { level = "deny", priority = -1 }
pedantic = { level = "deny", priority = -1 }
nursery = { level = "deny", priority = -1 }
cargo = { level = "deny", priority = -1 }
complexity = { level = "deny", priority = -1 }
perf = { level = "deny", priority = -1 }
style = { level = "deny", priority = -1 }
suspicious = { level = "deny", priority = -1 }
correctness = { level = "deny", priority = -1 }
# Restriction lints — explicitly opted in.
absolute_paths = "warn"
arithmetic_side_effects = "warn"
assertions_on_result_states = "warn"
as_underscore = "warn"
clone_on_ref_ptr = "warn"
dbg_macro = "warn"
empty_drop = "warn"
empty_structs_with_brackets = "warn"
exit = "warn"
expect_used = "warn"
filetype_is_file = "warn"
float_cmp_const = "warn"
fn_to_numeric_cast_any = "warn"
get_unwrap = "warn"
if_then_some_else_none = "warn"
indexing_slicing = "warn"
let_underscore_must_use = "warn"
lossy_float_literal = "warn"
mem_forget = "warn"
missing_assert_message = "warn"
mixed_read_write_in_expression = "warn"
mod_module_files = "warn"
multiple_inherent_impl = "warn"
mutex_atomic = "warn"
panic = "warn"
rc_buffer = "warn"
rc_mutex = "warn"
rest_pat_in_fully_bound_structs = "warn"
same_name_method = "warn"
shadow_unrelated = "warn"
str_to_string = "warn"
string_add = "warn"
string_slice = "warn"
suspicious_xor_used_as_pow = "warn"
todo = "warn"
try_err = "warn"
undocumented_unsafe_blocks = "warn"
unimplemented = "warn"
unnecessary_safety_doc = "warn"
unnecessary_self_imports = "warn"
unneeded_field_pattern = "warn"
unwrap_in_result = "warn"
unwrap_used = "warn"
verbose_file_reads = "warn"
# Targeted opt-outs (with rationale).
# `module_name_repetitions` — idiomatic Rust often pairs module and type names.
module_name_repetitions = "allow"
# `multiple_crate_versions` — transitive duplicates we cannot control.
multiple_crate_versions = "allow"
# Doc-comment completeness — overkill for internal crates at this stage.
missing_errors_doc = "allow"
missing_panics_doc = "allow"
must_use_candidate = "allow"
# CLI legitimately writes to stdout/stderr.
print_stdout = "allow"
print_stderr = "allow"
# Explicit `pub(crate)` visibility is intentional throughout.
redundant_pub_crate = "allow"