[package] name = "cstree" description = "Library for generic lossless syntax trees" categories = ["parsing", "data-structures"] keywords = ["cstree", "parser", "parsing", "cst"] edition.workspace = true version.workspace = true authors.workspace = true license.workspace = true repository.workspace = true readme.workspace = true rust-version.workspace = true [dependencies] text-size = "1.1.0" fxhash = "0.2.1" parking_lot = "0.12.1" # Arc triomphe = { version = "0.1.8", default-features = false, features = ["stable_deref_trait", "std"] } sptr = "0.3.2" # Default Interner indexmap = "2.4.0" [dependencies.cstree_derive] path = "../cstree-derive" version = "0.12.2" # must match the `cstree` version in the virtual workspace manifest optional = true [dependencies.lasso] version = "0.7" features = ["inline-more"] optional = true # [dependencies.salsa] # git = "https://github.com/salsa-rs/salsa/" # version = "0.1" # optional = true # package = "salsa-2022" [dependencies.serde] version = "1.0" optional = true default-features = false features = ["derive", "std"] [dev-dependencies] m_lexer = "0.0.4" serde_json = "1.0" serde_test = "1.0" crossbeam-utils = "0.8" criterion = { version = "0.5.1", features = ["html_reports"] } [[bench]] name = "main" harness = false [features] default = [] # Derive macro for `Syntax` derive = ["dep:cstree_derive"] # Implementations of `serde::{De,}Serialize` for CSTrees. serialize = ["serde", "lasso?/serialize", "triomphe/serde"] # Interoperability with the `lasso` interning crate. # When enabled, `cstree`'s default interners will use `lasso` internally, too. lasso_compat = ["lasso"] # Additionally provide threadsafe interner types. # Where applicable (and if the corresponding features are selected), provide compatibility # implementations for multi-thread interners from other crates. multi_threaded_interning = ["lasso_compat", "lasso/multi-threaded"] # Interoperability with the `salsa` framework for incremental computation. # Use this feature for "Salsa 2022". # WARNING: This feature is considered unstable! # salsa_2022_compat = ["salsa"] [[example]] name = "math" required-features = ["derive"] [[example]] name = "s_expressions" required-features = ["derive"] [[example]] name = "salsa" required-features = ["salsa_2022_compat"] [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "doc_cfg"]