[workspace]
members = ["kurage_proc_macros", "kurage_macro_rules"]

[package]
name = "kurage"
version = "0.1.3"
edition = "2021"
description = "Helper functions/macros for development with relm4"
license = "GPL-3.0-or-later"
repository = "https://github.com/FyraLabs/kurage"
readme = "README.md"
keywords = ["relm4", "gtk", "gtk4"]
categories = ["gui"]

[dependencies]
kurage_proc_macros = { version = "0.1.3", path = "kurage_proc_macros" }
kurage_macro_rules = { version = "0.1.3", path = "kurage_macro_rules", default-features = false }
i18n-embed = { version = "0.15.3", features = [
    "desktop-requester",
    "fluent-system",
], optional = true }
i18n-embed-fl = { version = "0.9.3", optional = true }
rust-embed = { version = "8.5.0", optional = true }
itertools = { version = "0.14.0", optional = true }

[features]
default = ["tracing"]
tracing = ["kurage_macro_rules/tracing"]
fluent = [
    "dep:i18n-embed",
    "dep:i18n-embed-fl",
    "dep:rust-embed",
    "dep:itertools",
]

[workspace.lints.clippy]
# cargo = { level = "warn", priority = -1 }
complexity = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
suspicious = { level = "warn", priority = -1 }

disallowed-macros = "deny"
excessive-nesting = "warn"

# arithmetic_side_effects = "warn"
assertions_on_result_states = "warn"
clone_on_ref_ptr = "warn"
create_dir = "warn"
empty_enum_variants_with_brackets = "warn"
empty_structs_with_brackets = "warn"
field_scoped_visibility_modifiers = "deny"
format_push_string = "warn"
get_unwrap = "warn"
if_then_some_else_none = "warn"
impl_trait_in_params = "warn"
indexing_slicing = "warn"
infinite_loop = "deny"
let_underscore_must_use = "deny"
let_underscore_untyped = "warn"
multiple_inherent_impl = "warn"
needless_raw_strings = "warn"
rc_buffer = "warn"
rc_mutex = "deny"
redundant_type_annotations = "warn"
ref_patterns = "warn"
renamed_function_params = "warn"
rest_pat_in_fully_bound_structs = "warn"
semicolon_outside_block = "warn"
str_to_string = "warn"
string_lit_chars_any = "warn"
string_to_string = "warn"
tests_outside_test_module = "warn"
todo = "warn"
try_err = "warn"
undocumented_unsafe_blocks = "deny"
unimplemented = "warn"
unneeded_field_pattern = "warn"
unwrap_in_result = "warn"

equatable_if_let = "allow"
