token-lang 1.0.0

Token type definitions - the shared seam between lexer and parser.
Documentation
# =============================================================================
#  R E P S   ยท   token-lang
# =============================================================================
[package]
name    = "token-lang"
version = "1.0.0"

# Minimum Supported Rust Version (MSRV)
rust-version = "1.85"
edition = "2024"

# License
license = "Apache-2.0 OR MIT"

# Readme
readme = "README.md"

# Description
description = "Token type definitions - the shared seam between lexer and parser."

# Keywords (5 max)
keywords = ["compiler", "parser", "language", "tokens"]

# Categories
categories = ["development-tools", "parsing"]

# Links
homepage      = "https://github.com/jamesgober/token-lang"
repository    = "https://github.com/jamesgober/token-lang"
documentation = "https://docs.rs/token-lang"

# Authors
authors = ["James Gober <me@jamesgober.com>"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[lib]
name = "token_lang"
path = "src/lib.rs"


# FEATURE FLAGS
# #################################
[features]
default = ["std"]
# Pull in the standard library; forwarded to the coordinate and interning crates.
std = ["span-lang/std", "intern-lang/std"]
# Serialization support: derives serde for `Token`, forwarded to its deps.
serde = ["dep:serde", "span-lang/serde", "intern-lang/serde"]


# DEPENDENCIES
# #################################
[dependencies]
# Source spans: the `where` half of every token.
span-lang = { version = "0.4", default-features = false }
# Interned lexemes: identifiers and literals ride as cheap `Symbol` handles.
intern-lang = { version = "1", default-features = false }
serde = { version = "1", optional = true, default-features = false, features = ["derive", "alloc"] }


# DEV DEPENDENCIES
# #################################
[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
proptest  = "1"
# JSON round-trip checks for the serde feature (test-only).
serde_json = "1"

[target.'cfg(loom)'.dev-dependencies]
loom = "0.7"


# BENCHMARKS
# #################################
[[bench]]
name    = "bench"
harness = false


# RELEASE PROFILE
# #################################
[profile.release]
opt-level     = 3
lto           = "fat"
codegen-units = 1
panic         = "abort"
strip         = "symbols"