Named

Trait Named 

pub trait Named: Sized + 'static {
    // Required method
    fn typename() -> &'static str;

    // Provided methods
    fn typehash() -> u64 { ... }
    fn typeid() -> TypeId { ... }
    fn port() -> u64 { ... }
    fn arm(&self) -> Option<&'static str> { ... }
    unsafe fn arm_unchecked(self_: *const ()) -> Option<&'static str> { ... }
}
Expand description

A Named type is a type that has a globally unique name.

Required Methods§

fn typename() -> &'static str

The globally unique type name for the type. This should typically be the fully qualified Rust name of the type.

Provided Methods§

fn typehash() -> u64

A globally unique hash for this type. TODO: actually enforce perfect hashing

fn typeid() -> TypeId

The TypeId for this type. TypeIds are unique only within a binary, and should not be used for global identification.

fn port() -> u64

The globally unique port for this type. Typed ports are in the range of 1<<63..1<<64-1.

fn arm(&self) -> Option<&'static str>

If the named type is an enum, this returns the name of the arm of the value self.

unsafe fn arm_unchecked(self_: *const ()) -> Option<&'static str>

An unsafe version of ‘arm’, accepting a pointer to the value, for use in type-erased settings.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

§

impl Named for &'static str

§

fn typename() -> &'static str

§

impl Named for IpAddr

§

fn typename() -> &'static str

§

impl Named for bool

§

fn typename() -> &'static str

§

impl Named for f32

§

fn typename() -> &'static str

§

impl Named for f64

§

fn typename() -> &'static str

§

impl Named for i8

§

fn typename() -> &'static str

§

impl Named for i16

§

fn typename() -> &'static str

§

impl Named for i32

§

fn typename() -> &'static str

§

impl Named for i64

§

fn typename() -> &'static str

§

impl Named for i128

§

fn typename() -> &'static str

§

impl Named for isize

§

fn typename() -> &'static str

§

impl Named for u8

§

fn typename() -> &'static str

§

impl Named for u16

§

fn typename() -> &'static str

§

impl Named for u32

§

fn typename() -> &'static str

§

impl Named for u64

§

fn typename() -> &'static str

§

impl Named for u128

§

fn typename() -> &'static str

§

impl Named for ()

§

fn typename() -> &'static str

§

impl Named for usize

§

fn typename() -> &'static str

§

impl Named for String

§

fn typename() -> &'static str

§

impl Named for Ipv4Addr

§

fn typename() -> &'static str

§

impl Named for Ipv6Addr

§

fn typename() -> &'static str

§

impl Named for Duration

§

fn typename() -> &'static str

§

impl Named for SystemTime

§

fn typename() -> &'static str

§

impl Named for Bytes

§

fn typename() -> &'static str

§

impl Named for ConfigAttr

§

fn typename() -> &'static str

§

impl<A, Z, Y, X, W, V, U, T> Named for (A, Z, Y, X, W, V, U, T)
where A: Named + 'static, Z: Named + 'static, Y: Named + 'static, X: Named + 'static, W: Named + 'static, V: Named + 'static, U: Named + 'static, T: Named + 'static,

§

fn typename() -> &'static str

§

impl<B, A, Z, Y, X, W, V, U, T> Named for (B, A, Z, Y, X, W, V, U, T)
where B: Named + 'static, A: Named + 'static, Z: Named + 'static, Y: Named + 'static, X: Named + 'static, W: Named + 'static, V: Named + 'static, U: Named + 'static, T: Named + 'static,

§

fn typename() -> &'static str

§

impl<C, B, A, Z, Y, X, W, V, U, T> Named for (C, B, A, Z, Y, X, W, V, U, T)
where C: Named + 'static, B: Named + 'static, A: Named + 'static, Z: Named + 'static, Y: Named + 'static, X: Named + 'static, W: Named + 'static, V: Named + 'static, U: Named + 'static, T: Named + 'static,

§

fn typename() -> &'static str

§

impl<D, C, B, A, Z, Y, X, W, V, U, T> Named for (D, C, B, A, Z, Y, X, W, V, U, T)
where D: Named + 'static, C: Named + 'static, B: Named + 'static, A: Named + 'static, Z: Named + 'static, Y: Named + 'static, X: Named + 'static, W: Named + 'static, V: Named + 'static, U: Named + 'static, T: Named + 'static,

§

fn typename() -> &'static str

§

impl<E, D, C, B, A, Z, Y, X, W, V, U, T> Named for (E, D, C, B, A, Z, Y, X, W, V, U, T)
where E: Named + 'static, D: Named + 'static, C: Named + 'static, B: Named + 'static, A: Named + 'static, Z: Named + 'static, Y: Named + 'static, X: Named + 'static, W: Named + 'static, V: Named + 'static, U: Named + 'static, T: Named + 'static,

§

fn typename() -> &'static str

§

impl<K, V> Named for HashMap<K, V>
where K: Named + 'static, V: Named + 'static,

§

fn typename() -> &'static str

§

impl<T> Named for Option<T>
where T: Named + 'static,

§

fn typename() -> &'static str

§

impl<T> Named for (T,)
where T: Named + 'static,

§

fn typename() -> &'static str

§

impl<T> Named for Vec<T>
where T: Named + 'static,

§

fn typename() -> &'static str

§

impl<T> Named for Range<T>
where T: Named + 'static,

§

fn typename() -> &'static str

§

impl<T, E> Named for Result<T, E>
where T: Named + 'static, E: Named + 'static,

§

fn typename() -> &'static str

§

impl<U, T> Named for (U, T)
where U: Named + 'static, T: Named + 'static,

§

fn typename() -> &'static str

§

impl<V, U, T> Named for (V, U, T)
where V: Named + 'static, U: Named + 'static, T: Named + 'static,

§

fn typename() -> &'static str

§

impl<W, V, U, T> Named for (W, V, U, T)
where W: Named + 'static, V: Named + 'static, U: Named + 'static, T: Named + 'static,

§

fn typename() -> &'static str

§

impl<X, W, V, U, T> Named for (X, W, V, U, T)
where X: Named + 'static, W: Named + 'static, V: Named + 'static, U: Named + 'static, T: Named + 'static,

§

fn typename() -> &'static str

§

impl<Y, X, W, V, U, T> Named for (Y, X, W, V, U, T)
where Y: Named + 'static, X: Named + 'static, W: Named + 'static, V: Named + 'static, U: Named + 'static, T: Named + 'static,

§

fn typename() -> &'static str

§

impl<Z, Y, X, W, V, U, T> Named for (Z, Y, X, W, V, U, T)
where Z: Named + 'static, Y: Named + 'static, X: Named + 'static, W: Named + 'static, V: Named + 'static, U: Named + 'static, T: Named + 'static,

§

fn typename() -> &'static str

Implementors§