[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"],
]