zsw/Cargo.toml

190 lines
7.0 KiB
TOML

[workspace]
members = ["zsw", "zsw-egui", "zsw-util", "zsw-wgpu"]
resolver = "2"
[workspace.dependencies]
# Workspace
zsw = { path = "zsw" }
zsw-egui = { path = "zsw-egui" }
zsw-util = { path = "zsw-util" }
zsw-wgpu = { path = "zsw-wgpu" }
app-error = { git = "https://github.com/Zenithsiz/app-error", rev = "9a7c202f54ef449d02e2b6ace74ad916f6e6720e" }
async-channel = "2.5.0"
async-once-cell = "0.5.4"
bytemuck = "1.23.2"
cgmath = "0.18.0"
chrono = "0.4.41"
clap = "4.5.47"
console-subscriber = "0.4.1"
dashmap = "6.1.0"
derive_more = "2.0.1"
directories = "6.0.0"
duplicate = "2.0.0"
egui = "0.32.2"
egui_plot = "0.33.0"
egui_wgpu_backend = "0.35.0"
egui_winit_platform = "0.27.0"
extend = "1.2.0"
futures = "0.3.31"
humantime = "2.3.0"
humantime-serde = "1.1.1"
image = "0.25.8"
include_dir = "0.7.4"
itertools = "0.14.0"
naga = "26.0.0"
naga_oil = "0.19.0"
num-rational = "0.4.2"
opener = "0.8.3"
pin-project = "1.1.10"
rand = "0.9.2"
rfd = "0.15.4"
sealed = "0.6.0"
serde = "1.0.219"
serde_json = "1.0.143"
serde_with = "3.14.0"
strum = "0.27.2"
thiserror = "2.0.16"
tokio = "1.47.1"
tokio-stream = "0.1.17"
toml = "0.9.5"
tracing = "0.1.41"
tracing-log = "0.2.0"
tracing-subscriber = "0.3.20"
wgpu = "26.0.1"
winit = "0.30.12"
zutil-cloned = { git = "https://github.com/Zenithsiz/zutil", rev = "2913756373a37f36e50c2ffc90090b2ff1a7ce49" }
zutil-logger = { git = "https://github.com/Zenithsiz/zutil", rev = "2913756373a37f36e50c2ffc90090b2ff1a7ce49" }
# Compile all dependencies with optimizations in debug builds, since otherwise
# the image loading is far too slow for us to debug other things.
[profile.dev.package."*"]
opt-level = 2
# Add debug to release for profiling
[profile.release]
debug = true
[workspace.lints]
clippy.absolute_paths = "warn"
clippy.allow_attributes = "warn"
clippy.assigning_clones = "warn"
clippy.clone_on_ref_ptr = "warn"
clippy.create_dir = "warn"
clippy.deref_by_slicing = "warn"
clippy.empty_enum_variants_with_brackets = "warn"
clippy.filetype_is_file = "warn"
clippy.format_push_string = "warn"
clippy.get_unwrap = "warn"
clippy.if_then_some_else_none = "warn"
clippy.infinite_loop = "warn"
clippy.iter_over_hash_type = "warn"
clippy.large_include_file = "warn"
clippy.lossy_float_literal = "warn"
clippy.map_err_ignore = "warn"
clippy.missing_assert_message = "warn"
clippy.mixed_read_write_in_expression = "warn"
clippy.mod_module_files = "warn"
clippy.multiple_unsafe_ops_per_block = "warn"
clippy.mutex_atomic = "warn"
clippy.needless_raw_strings = "warn"
clippy.nursery = { level = "warn", priority = -1 }
clippy.partial_pub_fields = "warn"
clippy.pathbuf_init_then_push = "warn"
clippy.pedantic = { level = "warn", priority = -1 }
clippy.pub_without_shorthand = "warn"
clippy.rc_buffer = "warn"
clippy.rc_mutex = "warn"
clippy.redundant_type_annotations = "warn"
clippy.rest_pat_in_fully_bound_structs = "warn"
clippy.same_name_method = "warn"
clippy.semicolon_inside_block = "warn"
clippy.string_lit_chars_any = "warn"
clippy.tests_outside_test_module = "warn"
clippy.undocumented_unsafe_blocks = "warn"
clippy.unnecessary_safety_comment = "warn"
clippy.unnecessary_safety_doc = "warn"
clippy.unnecessary_self_imports = "warn"
clippy.verbose_file_reads = "warn"
rust.elided_lifetimes_in_paths = "warn"
rust.explicit_outlives_requirements = "warn"
rust.meta_variable_misuse = "warn"
rust.missing_copy_implementations = "warn"
rust.missing_debug_implementations = "warn"
rust.must_not_suspend = "warn"
rust.noop_method_call = "warn"
rust.single_use_lifetimes = "warn"
rust.trivial_numeric_casts = "warn"
rust.unused_crate_dependencies = "warn"
rust.unused_lifetimes = "warn"
rust.unused_macro_rules = "warn"
rust.unused_results = "warn"
# We want to annotate unsafe inside unsafe fns
rust.unsafe_op_in_unsafe_fn = "deny"
# We muse use `expect` instead
clippy.unwrap_used = "deny"
# Style
clippy.implicit_return = "allow"
clippy.multiple_inherent_impl = "allow"
clippy.pattern_type_mismatch = "allow"
# `match` reads easier than `if / else`
clippy.items_after_statements = "allow"
clippy.match_bool = "allow"
clippy.module_name_repetitions = "allow"
clippy.option_if_let_else = "allow"
clippy.self_named_module_files = "allow"
clippy.single_match_else = "allow"
clippy.struct_field_names = "allow"
# Performance of floats isn't paramount
clippy.suboptimal_flops = "allow"
# Some functions might return an error in the future
clippy.unnecessary_wraps = "allow"
# Due to working with windows and rendering, which use `u32` / `f32` liberally
# and interchangeably, we can't do much aside from casting and accepting possible
# losses, although most will be lossless, since we deal with window sizes and the
# such, which will fit within a `f32` losslessly.
clippy.cast_possible_truncation = "allow"
clippy.cast_precision_loss = "allow"
# We use proper error types when it matters what errors can be returned, else
# such as when using `anyhow`, we just assume the caller won't check *what* error
# happened and instead just bubbles it up
clippy.missing_errors_doc = "allow"
# Too many false positives and not too important
clippy.missing_const_for_fn = "allow"
# We don't expose certain entities that should be documented for internal use.
rustdoc.private_intra_doc_links = "allow"
# This is too prevalent on generic functions, which we don't want to ALWAYS be `Send`
clippy.future_not_send = "allow"
# Too many false positives
clippy.significant_drop_tightening = "allow"
clippy.wildcard_imports = "allow"
# Despite it not being stable, we don't want to just display the string, and
# instead want to display *any* debug representation
clippy.unnecessary_debug_formatting = "allow"
# TODO: Are they actually confusing?
clippy.similar_names = "allow"
# False positives with `zutil_cloned::cloned`
clippy.semicolon_if_nothing_returned = "allow"
# We need to this to cfg out rust-analyzer
rust.unexpected_cfgs = { check-cfg = ['cfg(rust_analyzer)'], level = "warn" }