Crate eso[−][src]
Expand description
Type-level machinery for building Cow
-like
types while avoiding unnecessary copies of `‘static’ or
other shareable references.
The main feature of this crate is the Eso
type, which tracks
whether the contained value is ephemeral (i.e. borrowed with any
lifetime), static/shared (i.e. can be held on to indefinitely) or
owned (i.e. can be moved and may be mutably accessed).
In addition, it also statically tracks which of these is possible
at any given point in the code by encoding the information on a
type level using the definitions in the maybe
module.
While Eso
is perfectly happy working with normal Rust references,
it also provides an abstraction to support a more generalized notion
of reference. The definitions in the borrow
module describe
the different operations that are required to use generalized
references.
Re-exports
pub use crate::eso::t; | |
pub use crate::eso::x; |
Modules
borrow | The |
eso | The |
maybe | The |
unify |
Structs
An | A value of type |
No | A value of type |
Enums
Eso | A three-way choice between an Ephemeral reference (i.e.
with a lifetime that is not |