[][src]Trait typename::TypeName

pub trait TypeName {
    fn fmt(f: &mut Formatter) -> Result;

    fn type_name() -> String { ... }
fn type_name_of(&self) -> String { ... } }

Trait which returns the canonical name of the implementing type.

Derivable

This trait can be used with #[derive(TypeName)]. The derived impl will require that any generic parameters to the type implement TypeName as well.

How can I implement TypeName?

TypeName requires that the fmt function formats the type name exactly the same way as returned by the std::intrinsics::type_name intrinsic. It requires that the name contains the fully qualified path to the type (which can be obtained through the module_path!() macro), as well as the concrete values of its generic parameters.

Required methods

fn fmt(f: &mut Formatter) -> Result

Formats the fully qualified type name using the given formatter.

Loading content...

Provided methods

fn type_name() -> String

Returns the canoncial, concrete name of a type as a string.

Examples

use typename::TypeName;

assert_eq!(String::type_name(), "std::string::String");

fn type_name_of(&self) -> String

Returns the canoncial type of a value as a string.

Examples

use typename::TypeName;

assert_eq!(vec![0, 1, 2].type_name_of(), "std::vec::Vec<i32>");
Loading content...

Implementations on Foreign Types

impl TypeName for u8[src]

impl TypeName for u16[src]

impl TypeName for u32[src]

impl TypeName for u64[src]

impl TypeName for usize[src]

impl TypeName for i8[src]

impl TypeName for i16[src]

impl TypeName for i32[src]

impl TypeName for i64[src]

impl TypeName for isize[src]

impl TypeName for f32[src]

impl TypeName for f64[src]

impl TypeName for char[src]

impl TypeName for bool[src]

impl TypeName for str[src]

impl<'a, T: TypeName> TypeName for &'a T[src]

impl<'a, T: TypeName> TypeName for &'a mut T[src]

impl TypeName for String[src]

impl<T: TypeName> TypeName for PhantomData<T>[src]

impl<T: TypeName> TypeName for Vec<T>[src]

impl<K: TypeName, V: TypeName> TypeName for HashMap<K, V>[src]

impl<T: TypeName> TypeName for Box<T>[src]

impl<T: TypeName> TypeName for Option<T>[src]

impl<T: TypeName, E: TypeName> TypeName for Result<T, E>[src]

impl<T: TypeName> TypeName for Rc<T>[src]

impl TypeName for PathBuf[src]

impl<T: TypeName> TypeName for Arc<T>[src]

impl<T: TypeName> TypeName for RwLock<T>[src]

impl<T: TypeName> TypeName for Receiver<T>[src]

impl<T: TypeName> TypeName for Sender<T>[src]

impl TypeName for ()[src]

impl<A: TypeName> TypeName for (A,)[src]

impl<A: TypeName, B: TypeName> TypeName for (A, B)[src]

impl<A: TypeName, B: TypeName, C: TypeName> TypeName for (A, B, C)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName> TypeName for (A, B, C, D)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName> TypeName for (A, B, C, D, E)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName> TypeName for (A, B, C, D, E, F)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName> TypeName for (A, B, C, D, E, F, G)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName> TypeName for (A, B, C, D, E, F, G, H)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName> TypeName for (A, B, C, D, E, F, G, H, I)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName, N: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M, N)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName, N: TypeName, O: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName, N: TypeName, O: TypeName, P: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName, N: TypeName, O: TypeName, P: TypeName, Q: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName, N: TypeName, O: TypeName, P: TypeName, Q: TypeName, R: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName, N: TypeName, O: TypeName, P: TypeName, Q: TypeName, R: TypeName, S: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName, N: TypeName, O: TypeName, P: TypeName, Q: TypeName, R: TypeName, S: TypeName, T: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName, N: TypeName, O: TypeName, P: TypeName, Q: TypeName, R: TypeName, S: TypeName, T: TypeName, U: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName, N: TypeName, O: TypeName, P: TypeName, Q: TypeName, R: TypeName, S: TypeName, T: TypeName, U: TypeName, V: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName, N: TypeName, O: TypeName, P: TypeName, Q: TypeName, R: TypeName, S: TypeName, T: TypeName, U: TypeName, V: TypeName, W: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName, N: TypeName, O: TypeName, P: TypeName, Q: TypeName, R: TypeName, S: TypeName, T: TypeName, U: TypeName, V: TypeName, W: TypeName, X: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName, N: TypeName, O: TypeName, P: TypeName, Q: TypeName, R: TypeName, S: TypeName, T: TypeName, U: TypeName, V: TypeName, W: TypeName, X: TypeName, Y: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName, N: TypeName, O: TypeName, P: TypeName, Q: TypeName, R: TypeName, S: TypeName, T: TypeName, U: TypeName, V: TypeName, W: TypeName, X: TypeName, Y: TypeName, Z: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName, N: TypeName, O: TypeName, P: TypeName, Q: TypeName, R: TypeName, S: TypeName, T: TypeName, U: TypeName, V: TypeName, W: TypeName, X: TypeName, Y: TypeName, Z: TypeName, AA: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, AA)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName, N: TypeName, O: TypeName, P: TypeName, Q: TypeName, R: TypeName, S: TypeName, T: TypeName, U: TypeName, V: TypeName, W: TypeName, X: TypeName, Y: TypeName, Z: TypeName, AA: TypeName, AB: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, AA, AB)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName, N: TypeName, O: TypeName, P: TypeName, Q: TypeName, R: TypeName, S: TypeName, T: TypeName, U: TypeName, V: TypeName, W: TypeName, X: TypeName, Y: TypeName, Z: TypeName, AA: TypeName, AB: TypeName, AC: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, AA, AB, AC)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName, N: TypeName, O: TypeName, P: TypeName, Q: TypeName, R: TypeName, S: TypeName, T: TypeName, U: TypeName, V: TypeName, W: TypeName, X: TypeName, Y: TypeName, Z: TypeName, AA: TypeName, AB: TypeName, AC: TypeName, AD: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, AA, AB, AC, AD)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName, N: TypeName, O: TypeName, P: TypeName, Q: TypeName, R: TypeName, S: TypeName, T: TypeName, U: TypeName, V: TypeName, W: TypeName, X: TypeName, Y: TypeName, Z: TypeName, AA: TypeName, AB: TypeName, AC: TypeName, AD: TypeName, AE: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, AA, AB, AC, AD, AE)[src]

impl<A: TypeName, B: TypeName, C: TypeName, D: TypeName, E: TypeName, F: TypeName, G: TypeName, H: TypeName, I: TypeName, J: TypeName, K: TypeName, L: TypeName, M: TypeName, N: TypeName, O: TypeName, P: TypeName, Q: TypeName, R: TypeName, S: TypeName, T: TypeName, U: TypeName, V: TypeName, W: TypeName, X: TypeName, Y: TypeName, Z: TypeName, AA: TypeName, AB: TypeName, AC: TypeName, AD: TypeName, AE: TypeName, AF: TypeName> TypeName for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, AA, AB, AC, AD, AE, AF)[src]

impl<T: TypeName> TypeName for [T; 0][src]

impl<T: TypeName> TypeName for [T; 1][src]

impl<T: TypeName> TypeName for [T; 2][src]

impl<T: TypeName> TypeName for [T; 3][src]

impl<T: TypeName> TypeName for [T; 4][src]

impl<T: TypeName> TypeName for [T; 5][src]

impl<T: TypeName> TypeName for [T; 6][src]

impl<T: TypeName> TypeName for [T; 7][src]

impl<T: TypeName> TypeName for [T; 8][src]

impl<T: TypeName> TypeName for [T; 9][src]

impl<T: TypeName> TypeName for [T; 10][src]

impl<T: TypeName> TypeName for [T; 11][src]

impl<T: TypeName> TypeName for [T; 12][src]

impl<T: TypeName> TypeName for [T; 13][src]

impl<T: TypeName> TypeName for [T; 14][src]

impl<T: TypeName> TypeName for [T; 15][src]

impl<T: TypeName> TypeName for [T; 16][src]

impl<T: TypeName> TypeName for [T; 17][src]

impl<T: TypeName> TypeName for [T; 18][src]

impl<T: TypeName> TypeName for [T; 19][src]

impl<T: TypeName> TypeName for [T; 20][src]

impl<T: TypeName> TypeName for [T; 21][src]

impl<T: TypeName> TypeName for [T; 22][src]

impl<T: TypeName> TypeName for [T; 23][src]

impl<T: TypeName> TypeName for [T; 24][src]

impl<T: TypeName> TypeName for [T; 25][src]

impl<T: TypeName> TypeName for [T; 26][src]

impl<T: TypeName> TypeName for [T; 27][src]

impl<T: TypeName> TypeName for [T; 28][src]

impl<T: TypeName> TypeName for [T; 29][src]

impl<T: TypeName> TypeName for [T; 30][src]

impl<T: TypeName> TypeName for [T; 31][src]

impl<T: TypeName> TypeName for [T; 32][src]

Loading content...

Implementors

Loading content...