[][src]Crate type_name_value

Exposes the name!() macro, which can be used to assign type names to values. This can be used to implement in part the "Ghosts of Departed Proofs" pattern. Be very careful using this crate, and see the README for some caveats.



Create a Named with a given value. This will create an anonymous type that's unique to the macro invokation. Note that since this gives a type that's impossible to name properly, use wildcards and generics when passing them around.



An owned value which has name Name. This type is unique to this Named, so it can be used to enforce compile-time coherency



Create a named value. You probably don't want to use this, but instead want to use the name!() macro that calls this.