Строка trait Store for Module<T: Trait> as NAME
- это макро-магия.Эта строка, как написано, не является допустимым Rust, но она преобразуется в действительный код Rust с помощью макроса decl_storage!
.
В конечном итоге, as Indices
делает так, чтобы Substrate генерировал псевдоним, дружественный пользователю (Indices
)в метаданных субстрата для этого элемента хранилища.
Например, вы можете назвать свое хранилище как-то так:
decl_storage! {
trait Store for Module<T: Trait> as KittyStorage {
Value: map T::AccountId => u64;
}
}
Это будет выглядеть в пользовательском интерфейсе Polkadot следующим образом:
Имя, которое вы выбираете здесь, не имеет значения, кроме как вы хотите, чтобы имя вашего хранилища отображалось во внешнем мире.