Module mononym::named [−][src]
Expand description
The main implementation for named data types.
Structs
Turns a lifetime 'name
into a unique type Life<'name>
with an invariant phantom lifetime. Life
implements Name
so that it can be turned into a unique impl Name
.
Represents a named value with a unique type-level name. monoym
guarantees that there can never be two Rust values of the same
type Named<N, T>
. With that, the name type N
can be used to
uniquely identify the underlying value at the type level.
A unique seed type for generating new unique names. mononym
guarantees that there can never be two seed value of the same type
Seed<N>
with the same name type N
.
Traits
A marker trait that is used to mark a type-level name being bound to
a Rust value of the given type T
. This helps ensure that functions
that are generic over type-level names are “well-typed”, with
each name “having” their own type through HasType
.
A marker trait that is used to represent unique type in Rust.
mononym
guarantees that any two impl Name
generated by
the library are always considered distinct types by Rust.
Functions
Provides the continuation closure with a unique Seed
with a unique lifetime
'name
and a unique name Life<'name>
.