[package] name = "rust-cc" description = "A cycle collector for Rust programs" version.workspace = true authors.workspace = true readme = "README.md" repository.workspace = true categories.workspace = true keywords = ["cycle-collector", "garbage-collector", "gc", "reference-counting", "memory"] license.workspace = true edition.workspace = true [workspace] members = ["derive"] [workspace.package] version = "0.3.0" # Also update in [dependencies.rust-cc-derive.version] authors = ["fren_gor "] repository = "https://github.com/frengor/rust-cc" categories = ["memory-management", "no-std"] license = "MIT OR Apache-2.0" edition = "2021" [features] default = ["auto-collect", "finalization", "derive", "std"] # Enables support for nightly-only features nightly = [] # Enables the derive macros for the Trace and Finalize traits derive = ["dep:rust-cc-derive"] # Enables automatic executions of the collection algorithm auto-collect = [] # Enables finalization finalization = [] # Enables weak pointers weak-ptr = [] # Enables cleaners cleaners = ["dep:slotmap", "weak-ptr"] # Enables support for stdlib, disable for no-std support (requires ELF TLS and nightly) std = ["slotmap?/std", "thiserror/std"] # (Internal use only) Enables more debug assertions useful for debugging pedantic-debug-assertions = [] [dependencies] rust-cc-derive = { path = "./derive", version = "=0.3.0", optional = true } slotmap = { version = "1.0", optional = true } thiserror = { version = "1.0", package = "thiserror-core", default-features = false } [dev-dependencies] iai-callgrind = "=0.7.3" # Also update IAI_CALLGRIND_VERSION in .github/workflows/bench.yml rand = "0.8.3" trybuild = "1.0.85" test-case = "3.3.1" [[bench]] name = "bench" harness = false required-features = ["std", "derive"] [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "doc_auto_cfg", "--generate-link-to-definition"]