[package]
name = "space_finder"
version = "1.0.0"
authors = ["Rafał Mikrut <mikrutrafal@protonmail.com>"]
edition = "2024"
build = "build.rs"
description = "Tool to find and visualize the largest files and folders on your disk"
license = "MIT"
homepage = "https://github.com/qarmin/space_finder"
repository = "https://github.com/qarmin/space_finder"

[dependencies]
image = { version = "0.25", default-features = false }
infer = "0.19"
open = "5.3"
rayon = "1.10"
rfd = { version = "0.17", default-features = false, features = ["xdg-portal"] }
slint = { version = "1.15.1", default-features = false, features = [
	"std",
	"backend-winit",
	"renderer-winit-femtovg",
	"compat-1-2",
] }
i18n-embed = { version = "0.16", features = ["fluent-system", "desktop-requester"] }
i18n-embed-fl = "0.10"
rust-embed = { version = "8.5", features = ["debug-embed"] }
handsome_logger = "0.9.2"
log = "0.4"
dirs = "6.0.0"
serde = { version = "1", features = ["derive"] }
serde_json = "1"

[profile.rdebug]
inherits = "release"
debug = "full"
strip = "none"

[build-dependencies]
slint-build = "1.15.1"

[dev-dependencies]
tempfile = "3.13"


[lints]
clippy.unreachable = "allow" # This is a legitimate use case in most places
clippy.enum_variant_names = "allow" # Not always is possible to use different names
clippy.too_many_arguments = "allow" # Sometimes such functions are needed
clippy.type_complexity = "allow" # Sometimes such types are needed
clippy.collapsible_else_if = "allow" # Sometimes it is more readable
clippy.unimplemented = "allow" # Used in tests
clippy.error_impl_error = "allow" # Too much to fix
clippy.get_first = "allow" # largly ridiculous e.g. (x.get(0), x.get(1)) demands (x.first(), x.get(1)) creating confusion
clippy.unwrap_used = "allow" # Used by slint a lot
clippy.todo = "allow"

clippy.indexing_slicing = "allow"
clippy.doc_broken_link = "warn"
clippy.ip_constant = "warn"
clippy.unnecessary_semicolon = "warn"
clippy.trivially_copy_pass_by_ref = "warn"
clippy.non_std_lazy_statics = "warn"

clippy.allow_attributes = "warn"
clippy.assertions_on_result_states = "warn"
clippy.bool_to_int_with_if = "warn"
clippy.branches_sharing_code = "warn"
clippy.collection_is_never_read = "warn"
clippy.dbg_macro = "warn"
clippy.debug_assert_with_mut_call = "warn"
clippy.empty_enum_variants_with_brackets = "warn"
clippy.enum_glob_use = "warn"
clippy.equatable_if_let = "warn"
clippy.explicit_into_iter_loop = "warn"
clippy.explicit_iter_loop = "warn"
clippy.expl_impl_clone_on_copy = "warn"
clippy.fallible_impl_from = "warn"
clippy.filter_map_next = "warn"
clippy.flat_map_option = "warn"
clippy.float_cmp = "warn"
clippy.from_iter_instead_of_collect = "warn"
clippy.ignored_unit_patterns = "warn"
clippy.implicit_clone = "warn"
clippy.index_refutable_slice = "warn"
clippy.invalid_upcast_comparisons = "warn"
clippy.iter_filter_is_ok = "warn"
clippy.iter_filter_is_some = "warn"
clippy.iter_on_empty_collections = "warn"
clippy.iter_with_drain = "warn"
clippy.large_stack_arrays = "warn"
clippy.large_types_passed_by_value = "warn"
clippy.literal_string_with_formatting_args = "warn"
clippy.lossy_float_literal = "warn"
clippy.macro_use_imports = "warn"
clippy.manual_assert = "warn"
clippy.manual_instant_elapsed = "warn"
clippy.manual_is_variant_and = "warn"
clippy.manual_let_else = "warn"
clippy.manual_ok_or = "warn"
clippy.map_unwrap_or = "warn"
clippy.match_bool = "warn"
clippy.match_same_arms = "warn"
clippy.match_wildcard_for_single_variants = "warn"
clippy.mutex_atomic = "warn"
clippy.mutex_integer = "warn"
clippy.mut_mut = "warn"
clippy.needless_bitwise_bool = "warn"
clippy.needless_collect = "warn"
clippy.needless_continue = "warn"
clippy.needless_for_each = "warn"
clippy.needless_pass_by_ref_mut = "warn"
clippy.needless_pass_by_value = "warn"
clippy.needless_raw_strings = "warn"
clippy.nonstandard_macro_braces = "warn"
clippy.option_as_ref_cloned = "warn"
clippy.pathbuf_init_then_push = "warn"
clippy.path_buf_push_overwrite = "warn"
clippy.print_stderr = "warn"
clippy.print_stdout = "warn"
clippy.pub_underscore_fields = "warn"
clippy.question_mark = "warn"
clippy.range_minus_one = "warn"
clippy.range_plus_one = "warn"
clippy.redundant_clone = "warn"
clippy.redundant_else = "warn"
clippy.ref_binding_to_reference = "warn"
clippy.ref_option_ref = "warn"
clippy.same_functions_in_if_condition = "warn"
clippy.semicolon_if_nothing_returned = "warn"
clippy.set_contains_or_insert = "warn"
clippy.stable_sort_primitive = "warn"
clippy.string_add_assign = "warn"
clippy.string_slice = "warn"
clippy.suspicious_operation_groupings = "warn"
clippy.suspicious_xor_used_as_pow = "warn"
clippy.trait_duplication_in_bounds = "warn"
clippy.trivial_regex = "warn"
clippy.type_repetition_in_bounds = "warn"
clippy.uninlined_format_args = "warn"
clippy.unnecessary_box_returns = "warn"
clippy.unnecessary_join = "warn"
clippy.unnecessary_wraps = "warn"
clippy.unnested_or_patterns = "warn"
clippy.unused_async = "warn"
clippy.unused_result_ok = "warn"
clippy.unused_rounding = "warn"
clippy.unused_self = "warn"
clippy.used_underscore_binding = "warn"
clippy.useless_let_if_seq = "warn"
clippy.use_self = "warn"
clippy.verbose_file_reads = "warn"
clippy.wildcard_imports = "warn"
