Provides bounded and unbounded pools for any type of resource, as well as pools specific to
Vec<u8> buffers.
The resource pools can have a user-chosen init_resource function run to create a new resource,
and whenever a resource is returned to the pool, a reset_resource callback is first run.
The buffer pools use these features to create new empty Vec<u8> buffers as resources, and
whenever a buffer is returned to the pool, the buffer is either cleared (without changing its
capacity) if its capacity is at most a user-chosen max_buffer_capacity, and is otherwise replaced
with a new empty Vec<u8>.
Features
kanal(default): Implement shared (threadsafe) pools usingkanalchannels.crossbeam-channel: Unless thekanalfeature is enabled, implement shared (threadsafe) pools usingcrossbeam-channelchannels.clone-behavior: Implementsclone-behaviortraits for relevant structs.
If neither of the kanal or crossbeam-channel features is enabled, a compile-time error
is thrown.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.