ferrocat 3.2.2

Rust-first gettext and ICU toolkit for PO parsing, catalog updates, and MessageFormat parsing.
Documentation
[package]
name = "ferrocat"
version = "3.2.2"
edition.workspace = true
homepage.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
description = "Rust-first gettext and ICU toolkit for PO parsing, catalog updates, and MessageFormat parsing."
documentation = "https://docs.rs/ferrocat"
readme = "crates/ferrocat/README.md"
include = [
    "crates/ferrocat/src/**",
    "crates/ferrocat/examples/**",
    "crates/ferrocat/tests/**",
    "crates/ferrocat/README.md",
    "crates/ferrocat/CHANGELOG.md",
    "LICENSE",
]
keywords = ["ferrocat", "gettext", "po", "icu", "i18n"]
categories = ["internationalization", "localization", "parser-implementations"]

[lib]
path = "crates/ferrocat/src/lib.rs"

[[example]]
name = "fcl_with_mt_metadata"
path = "crates/ferrocat/examples/fcl_with_mt_metadata.rs"

[[example]]
name = "merge_extracted_messages"
path = "crates/ferrocat/examples/merge_extracted_messages.rs"

[[example]]
name = "release_audit"
path = "crates/ferrocat/examples/release_audit.rs"

[[example]]
name = "runtime_compile"
path = "crates/ferrocat/examples/runtime_compile.rs"

[[test]]
name = "smoke"
path = "crates/ferrocat/tests/smoke.rs"

[features]
default = ["full"]
full = ["catalog", "serde"]
catalog = ["ferrocat-po/catalog", "ferrocat-icu/serde"]
compile = ["catalog", "ferrocat-po/compile"]
mt = ["catalog", "ferrocat-po/mt"]
plurals = ["catalog", "ferrocat-po/plurals"]
serde = ["ferrocat-po/serde", "ferrocat-icu/serde"]

[dependencies]
ferrocat-icu = { version = "3.2.2", path = "crates/ferrocat-icu", default-features = false }
ferrocat-po = { version = "3.2.2", path = "crates/ferrocat-po", default-features = false }

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[lints]
workspace = true

[workspace]
members = [
    "crates/ferrocat-cli",
    "crates/ferrocat-po",
    "crates/ferrocat-icu",
    "crates/ferrocat-conformance",
    "crates/ferrocat-bench",
]
default-members = [
    ".",
    "crates/ferrocat-cli",
    "crates/ferrocat-po",
    "crates/ferrocat-icu",
    "crates/ferrocat-conformance",
    "crates/ferrocat-bench",
]
exclude = ["fuzz"]
resolver = "2"

[workspace.package]
edition = "2024"
homepage = "https://github.com/sebastian-software/ferrocat"
license = "MIT"
repository = "https://github.com/sebastian-software/ferrocat"
rust-version = "1.93.0"

[workspace.lints.rust]
unsafe_op_in_unsafe_fn = "deny"

[workspace.lints.clippy]
dbg_macro = "deny"
todo = "deny"
unwrap_used = "deny"
needless_borrow = "deny"
redundant_clone = "deny"

# Fat LTO + a single codegen unit trade longer release builds for faster
# binaries. This applies to the workspace's own binaries (CLI, benches);
# library consumers build under their own release profile.
[profile.release]
lto = "fat"
codegen-units = 1