[workspace] members = [ "exhaust-macros", "xtask", ] [package] name = "exhaust" version = "0.2.1" edition = "2021" rust-version = "1.80.0" description = "Trait and derive macro for working with all possible values of a type (exhaustive enumeration)." repository = "https://github.com/kpreid/exhaust/" license = "MIT OR Apache-2.0" categories = ["algorithms", "rust-patterns", "no-std"] keywords = ["exhaustive"] [features] default = ["std"] std = ["alloc"] alloc = ["dep:itertools"] [[test]] name = "alloc_impls" required-features = ["alloc"] [[test]] name = "std_impls" required-features = ["std"] [[test]] name = "keyed_collections" required-features = ["alloc"] [dependencies] exhaust-macros = { version = "0.2.1", path = "exhaust-macros" } # itertools is used for its powerset iterator, which is only available with alloc itertools = { workspace = true, optional = true } paste = "1.0.5" [workspace.dependencies] # Note!!! It would be nice if we could use a wide range of itertools versions, # but there is a bug fixed in 0.13.0, , # which affects `ExhaustHashMap` and `ExhaustBTreeMap`, so it actually matters that we have 0.13.0 # here. But when 0.14.0 is released, consider changing this to `>=0.13.0, <0.15.0` so that we can # allow dependents to stay off the upgrade treadmill without duplicating versions. itertools = { version = "0.13.0", default-features = false, features = ["use_alloc"] }