borrow-bag
A type-safe, heterogeneous collection with zero-cost add and borrow.
BorrowBag
allows the storage of any value, and returns a Handle
which can be
used to borrow the value back later. As the BorrowBag
is add-only, Handle
values remain valid for the lifetime of the BorrowBag
.
For usage details, please see the documentation
Motivation
Initially, BorrowBag
was conceived to solve the problem of storing concrete
types implementing a certain trait, without losing their type information, and
with an ability to borrow them back later.
The original implementation was generic enough that it was immediately extracted into this crate.
Use cases
Please create an issue or pull request so your use case can be added here.
Example
extern crate borrow_bag;
use new_borrow_bag;
;
;
Contributing
Bug reports and feature requests
Issues welcome.
Development
Contributions welcome via pull request.
Requested contributions
- Code review
- Feedback and/or criticism on the use of types
- Further validation that this is in fact "zero-cost" (when optimised)