Editor for papermario-dx mods
1# SPDX-FileCopyrightText: 2026 Alex Bates <alex@bates64.com>
2#
3# SPDX-License-Identifier: AGPL-3.0-or-later
4
5[workspace]
6members = ["crates/*"]
7resolver = "2"
8
9[workspace.dependencies]
10loro = { version = "1.10", features = ["counter"] }
11winit = "0.30"
12egui = "0.33"
13egui-winit = { version = "0.33", features = ["accesskit"] }
14egui-wgpu = "0.33"
15wgpu = { version = "27", features = ["vulkan"] }
16egui_tiles = "0.14"
17egui-phosphor = { version = "0.11", default-features = false, features = ["regular"] }
18egui_kittest = "0.33"
19tracing = "0.1"
20tracing-subscriber = { version = "0.3", features = ["env-filter"] }
21subsecond = "0.7"
22dioxus-devtools = "0.7"
23ash = "0.38"
24raw-window-handle = "0.6"
25roxmltree = "0.21"
26rfd = "0.15"
27log = "0.4"
28thiserror = "2"
29anyhow = "1"
30profiling = "1.0"
31puffin = { git = "https://github.com/blip-radar/puffin", branch = "egui-0.33" }
32puffin_egui = { git = "https://github.com/blip-radar/puffin", branch = "egui-0.33" }
33
34[patch.crates-io]
35puffin = { git = "https://github.com/blip-radar/puffin", branch = "egui-0.33" }
36puffin_egui = { git = "https://github.com/blip-radar/puffin", branch = "egui-0.33" }
37
38[workspace.lints.rust]
39missing_debug_implementations = "warn"
40unsafe_code = "deny"
41
42[workspace.lints.clippy]
43pedantic = { level = "warn", priority = -1 }
44complexity = { level = "warn", priority = -1 }
45style = { level = "warn", priority = -1 }
46suspicious = { level = "warn", priority = -1 }
47perf = { level = "warn", priority = -1 }
48
49redundant_pub_crate = "deny"
50
51# Allows
52many_single_char_names = "allow"
53must_use_candidate = "allow"
54too_many_lines = "allow"
55
56# Don't panic
57unwrap_used = "deny"
58expect_used = "warn"
59exit = "deny"
60infinite_loop = "deny"
61allow_attributes = "warn"
62
63# Force ? propagation over manual matching
64manual_let_else = "warn"
65
66# Avoid stringly typed code
67str_to_string = "warn"
68rc_buffer = "warn"
69large_types_passed_by_value = "warn"
70inefficient_to_string = "warn"
71
72# Sloppy conversions
73as_conversions = "warn"
74cast_possible_truncation = "warn"
75cast_precision_loss = "warn"
76cast_sign_loss = "warn"
77
78# Don't clone unnecessarily
79redundant_clone = "warn"
80cloned_instead_of_copied = "warn"
81needless_pass_by_value = "warn"
82
83# Documentation quality
84missing_errors_doc = "allow"
85missing_panics_doc = "warn"
86missing_safety_doc = "warn"
87too_long_first_doc_paragraph = "deny"
88
89# Unnecessary code
90needless_return = "warn"
91manual_map = "warn"
92manual_filter_map = "warn"
93explicit_iter_loop = "warn"
94implicit_clone = "warn"
95
96# Forgotten debug code
97todo = "warn"
98dbg_macro = "warn"
99unimplemented = "warn"
100
101# Prefer log
102print_stdout = "warn"
103print_stderr = "warn"
104uninlined_format_args = "warn" # Prefer format!("{x}")
105
106# Modules/crates
107wildcard_imports = "deny"
108mod_module_files = "deny"
109multiple_crate_versions = "allow" # Noisy with transitive deps
110single_component_path_imports = "deny"
111
112# nursery
113use_self = "deny"
114needless_collect = "warn"
115branches_sharing_code = "warn"
116
117[profile.dev.package.rsp]
118opt-level = 2