Struct ink_metadata::TypeSpec
source · pub struct TypeSpec<F: Form = MetaForm> { /* private fields */ }Expand description
A type specification.
This contains the actual type as well as an optional compile-time known displayed representation of the type. This is useful for cases where the type is used through a type alias in order to provide information about the alias name.
Examples
Consider the following Rust function:
fn is_sorted(input: &[i32], pred: Predicate) -> bool;
In this above example input would have no displayable name,
preds display name is Predicate and the display name of
the return type is simply bool. Note that Predicate could
simply be a type alias to fn(i32, i32) -> Ordering.
Implementations§
source§impl TypeSpec
impl TypeSpec
sourcepub fn with_name_str<T>(display_name: &'static str) -> Selfwhere
T: TypeInfo + 'static,
pub fn with_name_str<T>(display_name: &'static str) -> Selfwhere T: TypeInfo + 'static,
sourcepub fn with_name_segs<T, S>(segments: S) -> Selfwhere
T: TypeInfo + 'static,
S: IntoIterator<Item = &'static str>,
pub fn with_name_segs<T, S>(segments: S) -> Selfwhere T: TypeInfo + 'static, S: IntoIterator<Item = &'static str>,
source§impl<F> TypeSpec<F>where
F: Form,
impl<F> TypeSpec<F>where F: Form,
sourcepub fn display_name(&self) -> &DisplayName<F>
pub fn display_name(&self) -> &DisplayName<F>
Returns the compile-time known displayed representation of the type.
sourcepub fn new(ty: <F as Form>::Type, display_name: DisplayName<F>) -> Self
pub fn new(ty: <F as Form>::Type, display_name: DisplayName<F>) -> Self
Creates a new type specification for a given type and display name.
Trait Implementations§
source§impl Default for TypeSpec<PortableForm>
impl Default for TypeSpec<PortableForm>
source§impl<'de, F: Form> Deserialize<'de> for TypeSpec<F>where
F::Type: DeserializeOwned,
F::String: DeserializeOwned,
impl<'de, F: Form> Deserialize<'de> for TypeSpec<F>where F::Type: DeserializeOwned, F::String: DeserializeOwned,
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl IntoPortable for TypeSpec
impl IntoPortable for TypeSpec
§type Output = TypeSpec<PortableForm>
type Output = TypeSpec<PortableForm>
The portable version of
Self.source§fn into_portable(self, registry: &mut Registry) -> Self::Output
fn into_portable(self, registry: &mut Registry) -> Self::Output
Convert
self to the portable form by using the registry for caching.