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§

source

type ItemId: Parameter

Type for identifying an item.

Required Methods§

source

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§

source

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.

source

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.

source

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.

source

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.

source

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.

source

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.

source

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

Returns true if the item may be transferred.

Default implementation is that all items are transferable.

Implementors§

source§

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

§

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