[package] name = "oxidd-cache" version = "0.9.0" edition = "2021" description = "Apply cache for OxiDD" readme = "../../README.md" authors.workspace = true license.workspace = true homepage.workspace = true repository.workspace = true [dependencies] oxidd-core.workspace = true # fast alternative Mutex & RwLock implementation parking_lot = "0.12" # document feature flags document-features = "0.2" # allocation with madvise for hugepages hugealloc = { workspace = true, optional = true } allocator-api2 = { version = "0.2", optional = true } [dev-dependencies] oxidd-derive.workspace = true oxidd-test-utils.workspace = true # fast hash function # # Note that there is a performance regression with 2.0, see # https://github.com/rust-lang/rustc-hash/issues/45 rustc-hash = "1.1" [features] default = ["direct"] ## Collect statistics about cache hits etc. statistics = [] ## Enable the direct mapped apply cache implementation direct = [] ## Check that an apply cache is never dropped via its `Drop` implementation. ## This is done by adding a function call to a non-existing external function to ## the `Drop` implementation. So if the check fails, there will be a weird ## linker error. Using this feature in unoptimized builds may cause false ## positives. static_leak_check = [] ## Use the hugealloc crate to allocate memory hugealloc = ["dep:hugealloc", "dep:allocator-api2"] ## Use parking_lot instead of spinlocks parking_lot = []