Trait TypeName

Source
pub trait TypeName {
    // Required method
    fn fmt(f: &mut Formatter<'_>) -> Result;

    // Provided methods
    fn type_name() -> String { ... }
    fn type_name_of(&self) -> String { ... }
}
Expand description

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§

Source

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

Formats the fully qualified type name using the given formatter.

Provided Methods§

Source

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");
Examples found in repository?
examples/derive.rs (line 21)
19fn main() {
20    assert_eq!(
21        Custom::<i32>::type_name(),
22        concat!(module_path!(), "::", "Custom<i32>")
23    );
24    let c = Custom { _t: 3.14 };
25    println!("{}", c.type_name_of());
26}
Source

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>");
Examples found in repository?
examples/derive.rs (line 25)
19fn main() {
20    assert_eq!(
21        Custom::<i32>::type_name(),
22        concat!(module_path!(), "::", "Custom<i32>")
23    );
24    let c = Custom { _t: 3.14 };
25    println!("{}", c.type_name_of());
26}

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§

Source§

impl TypeName for bool

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl TypeName for char

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl TypeName for f32

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl TypeName for f64

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl TypeName for i8

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl TypeName for i16

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl TypeName for i32

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl TypeName for i64

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl TypeName for isize

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl TypeName for str

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl TypeName for u8

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl TypeName for u16

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl TypeName for u32

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl TypeName for u64

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl TypeName for ()

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl TypeName for usize

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl TypeName for String

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl TypeName for PathBuf

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl<'a, T: TypeName> TypeName for &'a T

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl<A: TypeName> TypeName for (A,)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl<A: TypeName, B: TypeName> TypeName for (A, B)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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)

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl<K: TypeName, V: TypeName> TypeName for HashMap<K, V>

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl<T: TypeName> TypeName for Option<T>

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

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

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl<T: TypeName> TypeName for Box<T>

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl<T: TypeName> TypeName for Rc<T>

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl<T: TypeName> TypeName for Arc<T>

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl<T: TypeName> TypeName for Vec<T>

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl<T: TypeName> TypeName for PhantomData<T>

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl<T: TypeName> TypeName for Receiver<T>

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl<T: TypeName> TypeName for Sender<T>

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl<T: TypeName> TypeName for RwLock<T>

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Source§

impl<T: TypeName, E: TypeName> TypeName for Result<T, E>

Source§

fn fmt(fmt: &mut Formatter<'_>) -> Result

Implementors§