[package]
name = "shrub-parser"
description = "POSIX/bash shell tokenizer and parsers (used by shrub-shell)"
version.workspace = true
categories.workspace = true
edition.workspace = true
keywords.workspace = true
license.workspace = true
readme.workspace = true
repository.workspace = true
rust-version.workspace = true
[lints]
workspace = true
[lib]
bench = false
[features]
arbitrary = ["dep:arbitrary"]
debug-tracing = ["peg/trace"]
diagnostics = ["dep:miette"]
serde = ["dep:serde"]
winnow-parser = ["dep:winnow"]
[dependencies]
arbitrary = { version = "1.4.2", optional = true, features = ["derive"] }
bon = { workspace = true }
cached = { workspace = true }
indenter = "0.3.4"
miette = { workspace = true, features = ["derive"], optional = true }
peg = "0.8.6"
serde = { workspace = true, features = ["derive", "rc"], optional = true }
thiserror = { workspace = true }
tracing = { workspace = true }
utf8-chars = { workspace = true }
winnow = { version = "1.0.0", optional = true }
[target.wasm32-unknown-unknown.dependencies]
getrandom = { workspace = true, features = ["wasm_js"] }
uuid = { workspace = true, features = ["js"] }
[dev-dependencies]
anyhow = { workspace = true }
criterion = { workspace = true, features = ["html_reports"] }
insta = { workspace = true, features = ["glob", "ron", "yaml", "redactions"] }
miette = { workspace = true, features = ["default", "fancy"] }
pretty_assertions = { workspace = true, features = ["unstable"] }
serde = { workspace = true, features = ["derive", "rc"] }
serde_json = { workspace = true }
yaml_serde = { workspace = true }
[[bench]]
name = "parser"
harness = false
[[example]]
name = "miette"
required-features = ["diagnostics"]
[[example]]
name = "serde"
required-features = ["serde"]
[package.metadata.cargo-machete]
ignored = ["getrandom", "uuid"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cap-lints", "warn"]