[package] name = "vermouth" version = "0.2.1" edition = "2021" description = "a new kind of parser for procedural macros" license = "MIT OR Apache-2.0" repository = "https://github.com/soqb/vermouth" rust-version = "1.80" exclude = ["assets/", "examples/"] [workspace] members = ["examples/toy", "examples/toy/macros"] [dependencies] document-features = "0.2.10" smallvec = { version = "1.13.2", features = ["union"] } [dependencies.proc-macro2] # we lock the version to a range since there's no tangible guarantee # that `proc-macro2` matches `proc_macro` in enough detail. version = ">=1, <=1.0.86" optional = true [features] default = ["attributes"] # NB: we use the `document_features` crate. #! ## Stable Features ## Provides support and utilities for parsing and handling Rust attributes. attributes = [] ## Enables emitting diagnostic warnings through the `vermouth::Diagnostic` API. warnings = [] ## Enables the complete suite of parsing utilities. This implies every other stable feature except ## proc-macro2. complete = ["attributes", "warnings"] ## Rewires this crate to build on top of the [`proc-macro2`] crate, ## instead of the default, officially supported `proc_macro` crate. ## This feature should be enabled with caution, and it is considered a major breaking change to do so. ## Due to the risks of compounding additive features across dependencies, ## it can be problematic to enable this feature in a library, since it may break other dependencies of this crate. ## ## [`proc-macro2`]: https://crates.io/crates/proc-macro2 proc-macro2 = ["dep:proc-macro2"] #! ## Unstable Features (nightly) ## Enables the `proc_macro` crate's experimental ## proc_macro_diagnostic ## feature for higher quality diagnostics. unstable-diagnostics-backend = [] # enable this in your r-a config # please, please, please do not enable this during compilation. rust-analyzer-hack = [] [package.metadata.docs.rs] features = ["complete"] [package.metadata.cargo-all-features] skip_feature_sets = [ ["proc-macro2", "unstable-diagnostics-backend"], ]