#[cfg(feature = "std")]
use serde::{Serialize, Deserialize};
#[cfg(feature = "std")]
use crate::bytes;
use rstd::vec::Vec;
#[derive(PartialEq, Eq)]
#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug, Hash, PartialOrd, Ord, Clone))]
pub struct StorageKey(#[cfg_attr(feature = "std", serde(with="bytes"))] pub Vec<u8>);
#[derive(PartialEq, Eq)]
#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug, Hash, PartialOrd, Ord, Clone))]
pub struct StorageData(#[cfg_attr(feature = "std", serde(with="bytes"))] pub Vec<u8>);
#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug, PartialEq, Eq))]
#[cfg_attr(feature = "std", serde(rename_all = "camelCase"))]
pub struct StorageChangeSet<Hash> {
pub block: Hash,
pub changes: Vec<(
StorageKey,
Option<StorageData>,
)>,
}
pub mod well_known_keys {
pub const CODE: &'static [u8] = b":code";
pub const HEAP_PAGES: &'static [u8] = b":heappages";
pub const AUTHORITY_COUNT: &'static [u8] = b":auth:len";
pub const AUTHORITY_PREFIX: &'static [u8] = b":auth:";
pub const EXTRINSIC_INDEX: &'static [u8] = b":extrinsic_index";
pub const ALL_EXTRINSICS_LEN: &'static [u8] = b":all_extrinsics_len";
pub const CHANGES_TRIE_CONFIG: &'static [u8] = b":changes_trie";
pub const CHILD_STORAGE_KEY_PREFIX: &'static [u8] = b":child_storage:";
pub fn is_child_storage_key(key: &[u8]) -> bool {
key.starts_with(CHILD_STORAGE_KEY_PREFIX)
}
}