[package]
name = "glossa-shared"
version = "0.0.8"
authors.workspace = true
categories.workspace = true
readme = "docs/Readme.md"
keywords.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
description = "Shared Data structures for glossa-codegen"
[features]
default = ["phf", "type-aliases"]
std = [
"dep:ahash",
"dep:kstring",
"glossa-dsl?/std",
"bincode?/std",
"serde?/std",
"compact_str/std",
"smallvec?/std",
"dep:rayon",
]
serde = [
"dep:serde",
"ahash?/serde",
"kstring?/serde",
"lang-id?/serde",
"glossa-dsl?/serde",
"compact_str/serde",
"smallvec?/serde",
]
type-aliases = ["dep:lang-id", "dep:glossa-dsl"]
phf = ["dep:phf"]
consts = ["lang-id?/consts"]
decode = ["serde", "type-aliases", "dep:bincode", "glossa-dsl?/bincode"]
smallvec = ["dep:smallvec", "dep:derive_more"]
[dependencies]
compact_str.workspace = true
phf_shared.workspace = true
tap.workspace = true
phf = { workspace = true, optional = true }
ahash = { workspace = true, optional = true }
derive_more = { workspace = true, optional = true, features = [
"deref",
"deref_mut",
] }
lang-id = { workspace = true, optional = true, features = ["compact_str"] }
kstring = { workspace = true, optional = true }
glossa-dsl = { workspace = true, optional = true }
bincode = { workspace = true, optional = true, features = ["alloc", "serde"] }
serde = { workspace = true, optional = true, features = ["alloc"] }
smallvec = { workspace = true, optional = true }
rayon = { workspace = true, optional = true }
log.workspace = true
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "__unstable_doc"]
[lints]
workspace = true