[package] name = "tuit" version = "0.3.0-a2+checkboxes" edition = "2021" description = "A no_std, no_alloc TUI library" categories = ["no-std::no-alloc", "command-line-interface"] keywords = ["no_std", "tui", "colors", "terminal", "ansi"] documentation = "https://docs.rs/crate/tuit" readme = "README.md" license = "GPL-3.0+" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] thiserror = { version = "^1.0", package = "thiserror-core" } anyhow = "^1.0" owo-colors = { version = "^4.0", optional = true } log = { version = "^0.4", optional = true } env_logger = { version = "0.11.5", optional = true } ndarray = { version = "^0.16", default-features = false, optional = true } [dev-dependencies] # So, this is a bit weird, but it basically automatically # adds features to `cargo test` and `cargo run`. tuit = { path = ".", features = ["ansi_renderer", "extras", "std", "debug"] } [features] default = ["builtin_widgets"] std = ["alloc"] alloc = [] builtin_widgets = [] ansi_renderer = ["owo_colors"] owo_colors = ["dep:owo-colors"] extras = ["dep:ndarray"] debug = ["dep:log", "dep:env_logger"] [package.metadata.docs.rs] all-features = true # Otherwise, it would not compile every feature -- causing some docs to be missing. [lints.clippy] pedantic = "deny" nursery = "deny" perf = "warn" needless_borrows_for_generic_args = { level = "allow", priority = 1 } # This returns a false positive as of Clippy 1.80, so I have disabled it. collapsible_if = { level = "allow", priority = 1 } undocumented_unsafe_blocks = { level = "deny", priority = 1 } # Unsafe is forbidden in the library anyway, but it might not be in the future. unwrap_used = { level = "warn", priority = 1 } suspicious_doc_comments = { level = "warn", priority = 1 } todo = { level = "warn", priority = 1 } missing_errors_doc = { level = "warn", priority = 1 } module_name_repetitions = { level = "warn", priority = 1 } # Most values we work with are dimensions of a terminal or widget... # It is incredibly rare that a terminal would be large enough to ACTUALLY cause an overflow # of some kind. cast_possible_truncation = { level = "allow", priority = 1 } cast_possible_wrap = { level = "allow", priority = 1 } cast_precision_loss = { level = "allow", priority = 1 } cast_sign_loss = { level = "warn", priority = 1 } [lints.rust] unsafe_code = "forbid" missing_docs = "warn" unused_features = "deny" [lints.rustdoc] #missing_doc_code_examples = "warn" broken_intra_doc_links = "deny"