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>.