referrerpolicy=no-referrer-when-downgrade
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, V>(item: &Self::ItemId, key: &K) -> Option<V>
       where K: Encode,
             V: Decode { ... }
    fn typed_custom_attribute<K, V>(
        account: &AccountId,
        item: &Self::ItemId,
        key: &K,
    ) -> Option<V>
       where K: Encode,
             V: Decode { ... }
    fn typed_system_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 item.

Required Associated Types§

type ItemId: Parameter

Type for identifying an item.

Required Methods§

fn owner(item: &Self::ItemId) -> Option<AccountId>

Returns the owner of item, or None if the item doesn’t exist or has no owner.

Provided Methods§

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 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.

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.

fn typed_attribute<K, V>(item: &Self::ItemId, key: &K) -> Option<V>
where K: Encode, V: Decode,

Returns the strongly-typed attribute value of item corresponding to key.

By default this just attempts to use attribute.

fn typed_custom_attribute<K, V>( account: &AccountId, item: &Self::ItemId, key: &K, ) -> Option<V>
where K: Encode, V: Decode,

Returns the strongly-typed custom attribute value of item corresponding to key.

By default this just attempts to use custom_attribute.

fn typed_system_attribute<K, V>(item: &Self::ItemId, key: &K) -> Option<V>
where K: Encode, V: Decode,

Returns the strongly-typed system attribute value of item corresponding to key.

By default this just attempts to use system_attribute.

fn can_transfer(_item: &Self::ItemId) -> bool

Returns true if the item may be transferred.

Default implementation is that all items are transferable.

Object Safety§

This trait is not object safe.

Implementors§

§

impl<F, A, AccountId> Inspect<AccountId> for ItemOf<F, A, AccountId>
where F: Inspect<AccountId>, A: Get<<F as Inspect<AccountId>>::CollectionId>,

§

type ItemId = <F as Inspect<AccountId>>::ItemId