Crate pseudo_pool

Source
Expand description

§pseudo_pool

License Cargo Documentation Build

A pool-like collection that automatically returns objects to the pool & blocks when the pool is empty

§Motivation

I needed something that worked like a pool, that allowed me to checkout objects in the pool & then return them, but it needed to have the following characteristics:

  • It needed to automatically return things to the pool when dropped
  • It needed to have a non-blocking way to do checkout that returned an object or None if all objects are in use
  • IT NEEDED TO ALSO HAVE A BLOCKING CHECKOUT THAT BLOCKS UNTIL THERE IS A USABLE OBJECT

The first two were covered by existing crates:

These are nice crates made by responsible people, & not absurd hacks like this crate.

However, none of them had characteristic three.

So I wrote this thing.

§Usage

[dependencies]
pseudo_pool = "0.1.0" # A version number that inspires confidence

§Examples

TBD

§Benchmarks

No.

§License

MIT

Structs§

Pool
The pseudo-pool container. This holds the inventory of objects that can be checked in/out & automatically tracks when checked out objects are out of scope to return them to the pool. The objects can carry payloads (which must all be of the same type).
PoolEntry
The wrapper for objects in the pool. It carries an arbitrary payload, which can be read & written using accessors (but, currently, writes are erased upon dropping this).

Enums§

Error

Type Aliases§

Result