Allowing to pass from [&T]
to (an analogue of) &[T]
safely
without copying anything.
This crate provides two helper types Slice
and Pair
that allow the following conversions:
&'a [&'x T] -> &'a Slice<T>
(and a mutable equivalent)&'a (&'x A, &'x B) -> &'a Pair<A, B>
(and a mutable equivalent)
&'a Slice<T> -> &'a [&'a T]
(and a mutable equivalent)&'a Pair<A, B> -> &'a (&'a A, &'a B)
(and a mutable equivalent)
To move lifetimes from the depths of a type expression closer to its head.
Such a manipulation can be useful in a cps-heavy code.
Simply include
multiref = "0.1"
in your Cargo.toml
.
The crate doesn't use any of the std
library and has
the #![no_std]
attribute.
There is a similiarly named crate
multi_mut.
It allows to extract multiple nonintersecting mutable references
from the std::collections
maps.
However it has nothing to do with the distributive laws.
0.1.2
: fixed a soundness issue with pairs0.1.1
:modify
methods for pairs and “slices”.0.1.0
: Initial version.