Trait Inspect
pub trait Inspect<AccountId> {
type ItemId;
// Required method
fn owner(item: &Self::ItemId) -> Option<AccountId>;
// Provided methods
fn attribute(_item: &Self::ItemId, _key: &[u8]) -> Option<Vec<u8>> { ... }
fn typed_attribute<K, V>(item: &Self::ItemId, key: &K) -> Option<V>
where K: Encode,
V: Decode { ... }
fn can_transfer(_item: &Self::ItemId) -> bool { ... }
}
Expand description
Trait for providing an interface to a read-only NFT-like set of items.
Required Associated Types§
type ItemId
type ItemId
Type for identifying an item.
Required Methods§
Provided Methods§
fn 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.
fn typed_attribute<K, V>(item: &Self::ItemId, key: &K) -> Option<V>
fn typed_attribute<K, V>(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
.
fn 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.