[package] name = "uu_awk" version.workspace = true edition.workspace = true license.workspace = true [[bin]] name = "awk" path = "src/main.rs" [workspace.package] version = "0.1.0" license = "MIT OR Apache-2.0" edition = "2024" [workspace] resolver = "3" members = ["interpreter","lexer", "parser"] [workspace.dependencies] lexer.path = "./lexer" parser.path = "./parser" interpreter.path = "./interpreter" color-eyre = "0.6.5" either = "1.15.0" memchr = "2.8.0" thiserror = "2.0.18" tracing = "0.1.44" smallvec = { version = "1.15.1", features = ["union", "const_generics", "const_new"] } bumpalo = { version = "3.20.2", features = ["boxed", "collections", "std", "allocator-api2"] } hashbrown = "0.17.0" allocator-api2 = "0.4.0" ahash = "0.8.12" [dependencies] interpreter.workspace = true parser.workspace = true color-eyre.workspace = true either.workspace = true memchr.workspace = true thiserror.workspace = true tracing.workspace = true bumpalo.workspace = true tracing-subscriber = { version = "0.3.23", features = ["env-filter"] } tracing-error = "0.2.1" clap = { version = "4.6.1", features = ["derive"] } [dev-dependencies] ctor = "1.0" uutests = "0.9" [profile.release] lto = true panic = "abort" codegen-units = 1 debug = true # A release-like profile that is as small as possible. [profile.release-small] inherits = "release" opt-level = "z" strip = true # A release-like profile with debug info for profiling. # See https://github.com/mstange/samply . [profile.profiling] inherits = "release" panic = "unwind" debug = true [lints] workspace = true # This is the linting configuration for all crates. # In order to use these, all crates have `[lints] workspace = true` section. [workspace.lints.rust] # Allow "fuzzing" as a "cfg" condition name and "cygwin" as a value for "target_os" # https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html unexpected_cfgs = { level = "warn", check-cfg = [ 'cfg(fuzzing)', 'cfg(target_os, values("cygwin"))', 'cfg(wasi_runner)', ] } unused_qualifications = "warn" [workspace.lints.clippy] # The counts were generated with this command: # cargo clippy --all-targets --workspace --message-format=json --quiet \ # | jq -r '.message.code.code | select(. != null and startswith("clippy::"))' \ # | sort | uniq -c | sort -h -r # all = { level = "warn", priority = -1 } cargo = { level = "warn", priority = -1 } pedantic = { level = "warn", priority = -1 } print_stdout = "warn" # restriction: forbid print/println macros print_stderr = "warn" # restriction: forbid eprint/eprintln macros use_self = "warn" # nursery lint cargo_common_metadata = "allow" # 3240 multiple_crate_versions = "allow" # 2882 missing_errors_doc = "allow" # 1572 missing_panics_doc = "allow" # 946 must_use_candidate = "allow" # 322 match_same_arms = "allow" # 204 cast_possible_truncation = "allow" # 122 too_many_lines = "allow" # 101 cast_possible_wrap = "allow" # 78 cast_sign_loss = "allow" # 70 struct_excessive_bools = "allow" # 68 cast_precision_loss = "allow" # 52 cast_lossless = "allow" # 35 ignored_unit_patterns = "allow" # 21 similar_names = "allow" # 20 needless_pass_by_value = "allow" # 16 float_cmp = "allow" # 12 items_after_statements = "allow" # 11 return_self_not_must_use = "allow" # 8 inline_always = "allow" # 6 fn_params_excessive_bools = "allow" # 6 used_underscore_items = "allow" # 2 should_panic_without_expect = "allow" # 2 doc_markdown = "allow" unused_self = "allow" enum_glob_use = "allow" unnested_or_patterns = "allow" implicit_hasher = "allow" doc_link_with_quotes = "allow" format_push_string = "allow" flat_map_option = "allow" from_iter_instead_of_collect = "allow" large_types_passed_by_value = "allow"