impl_type_path!() { /* proc-macro */ }Expand description
A replacement for deriving TypePath for use on foreign types.
Since (unlike the derive) this macro may be invoked in a different module to where the type is defined, it requires an ‘absolute’ path definition.
Specifically, a leading :: denoting a global path must be specified
or a preceding (in my_crate::foo) to specify the custom path must be used.
§Examples
Implementing TypePath on a foreign type:
ⓘ
impl_type_path!(::foreign_crate::foo::bar::Baz);On a generic type (this can also accept trait bounds):
ⓘ
impl_type_path!(::foreign_crate::Foo<T>);
impl_type_path!(::foreign_crate::Goo<T: ?Sized>);On a primitive (note this will not compile for a non-primitive type):
ⓘ
impl_type_path!(bool);With a custom type path:
ⓘ
impl_type_path!((in other_crate::foo::bar) Baz);With a custom type path and a custom type name:
ⓘ
impl_type_path!((in other_crate::foo as Baz) Bar);