[package]
name = "collect_failable"
version = "0.16.0"
edition = "2021"
description = "A trait for collecting values into a container which has an invariant to uphold and whose construction may fail"
repository = "https://github.com/MaxMahem/collect_failable"
homepage = "https://github.com/MaxMahem/collect_failable"
documentation = "https://docs.rs/collect_failable/"
keywords = ["iterator", "collect", "container"]
authors = ["Austin Stanley <maxtmahem@gmail>"]
license = "MIT OR Apache-2.0"
categories = ["data-structures", "rust-patterns"]

[package.metadata.docs.rs]
all-features = true


[features]
default = ["alloc", "std", "unsafe", "tuple"]
alloc = []
std = ["alloc"]
unsafe = []
tuple = []
hashbrown = [ "dep:hashbrown" ]
indexmap = [ "dep:indexmap" ]
arrayvec = [ "dep:arrayvec" ]

[dependencies]
tap = { version = "1.0.1" }
thiserror = { version = "2.0.18", default-features = false }
hashbrown = { version = "0.16.1", optional = true }
derive_more = { version = "2.1.1", features = ["constructor", "deref", "display"] }
indexmap = { version = "2.13.0", optional = true }
arrayvec = { version = "0.7.6", optional = true }
sealed = "0.6.0"
subdef = "0.1.2"
fluent_result = "0.10.1"
no_drop = "0.3.0"
display_as_debug = "0.5.1"

# Public Dependencies
either = "1.15.0"
size_hinter = "0.4.0"

[dev-dependencies]
collect_failable = { path = ".", features = ["hashbrown", "indexmap", "arrayvec"] }
criterion = { version = "0.8", features = ["html_reports"] }
dropcount = "0.1.2"
assert_unordered = { version = "0.3.5", default-features = false }

[[bench]]
name = "try_extend_comparison"
harness = false

[[bench]]
name = "array_monomorphization"
harness = false

