pub trait Inspect<AccountId> {
type ItemId: Parameter;
// Required method
fn owner(item: &Self::ItemId) -> Option<AccountId>;
// Provided methods
fn attribute(_item: &Self::ItemId, _key: &[u8]) -> Option<Vec<u8>> { ... }
fn custom_attribute(
_account: &AccountId,
_item: &Self::ItemId,
_key: &[u8],
) -> Option<Vec<u8>> { ... }
fn system_attribute(_item: &Self::ItemId, _key: &[u8]) -> Option<Vec<u8>> { ... }
fn typed_attribute<K: Encode, V: Decode>(
item: &Self::ItemId,
key: &K,
) -> Option<V> { ... }
fn typed_custom_attribute<K: Encode, V: Decode>(
account: &AccountId,
item: &Self::ItemId,
key: &K,
) -> Option<V> { ... }
fn typed_system_attribute<K: Encode, V: Decode>(
item: &Self::ItemId,
key: &K,
) -> Option<V> { ... }
fn can_transfer(_item: &Self::ItemId) -> bool { ... }
}
Expand description
Trait for providing an interface to a read-only NFT-like item.
Required Associated Types§
Required Methods§
Provided Methods§
Sourcefn attribute(_item: &Self::ItemId, _key: &[u8]) -> Option<Vec<u8>>
fn attribute(_item: &Self::ItemId, _key: &[u8]) -> Option<Vec<u8>>
Returns the attribute value of item
corresponding to key
.
By default this is None
; no attributes are defined.
Sourcefn custom_attribute(
_account: &AccountId,
_item: &Self::ItemId,
_key: &[u8],
) -> Option<Vec<u8>>
fn custom_attribute( _account: &AccountId, _item: &Self::ItemId, _key: &[u8], ) -> Option<Vec<u8>>
Returns the custom attribute value of item
corresponding to key
.
By default this is None
; no attributes are defined.
Sourcefn system_attribute(_item: &Self::ItemId, _key: &[u8]) -> Option<Vec<u8>>
fn system_attribute(_item: &Self::ItemId, _key: &[u8]) -> Option<Vec<u8>>
Returns the system attribute value of item
corresponding to key
.
By default this is None
; no attributes are defined.
Sourcefn typed_attribute<K: Encode, V: Decode>(
item: &Self::ItemId,
key: &K,
) -> Option<V>
fn typed_attribute<K: Encode, V: Decode>( item: &Self::ItemId, key: &K, ) -> Option<V>
Returns the strongly-typed attribute value of item
corresponding to key
.
By default this just attempts to use attribute
.
Sourcefn typed_custom_attribute<K: Encode, V: Decode>(
account: &AccountId,
item: &Self::ItemId,
key: &K,
) -> Option<V>
fn typed_custom_attribute<K: Encode, V: Decode>( account: &AccountId, item: &Self::ItemId, key: &K, ) -> Option<V>
Returns the strongly-typed custom attribute value of item
corresponding to key
.
By default this just attempts to use custom_attribute
.
Sourcefn typed_system_attribute<K: Encode, V: Decode>(
item: &Self::ItemId,
key: &K,
) -> Option<V>
fn typed_system_attribute<K: Encode, V: Decode>( item: &Self::ItemId, key: &K, ) -> Option<V>
Returns the strongly-typed system attribute value of item
corresponding to key
.
By default this just attempts to use system_attribute
.
Sourcefn can_transfer(_item: &Self::ItemId) -> bool
fn can_transfer(_item: &Self::ItemId) -> bool
Returns true
if the item
may be transferred.
Default implementation is that all items are transferable.
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.