use crate::kv_store::StorageColumn;
#[repr(u32)]
#[derive(
Copy,
Clone,
Debug,
strum_macros::EnumCount,
strum_macros::IntoStaticStr,
PartialEq,
Eq,
enum_iterator::Sequence,
Hash,
num_enum::TryFromPrimitive,
)]
pub enum Column {
Metadata = 0,
ContractsRawCode = 1,
ContractsState = 2,
ContractsLatestUtxo = 3,
ContractsAssets = 4,
Coins = 5,
Transactions = 6,
FuelBlocks = 7,
FuelBlockMerkleData = 8,
FuelBlockMerkleMetadata = 9,
ContractsAssetsMerkleData = 10,
ContractsAssetsMerkleMetadata = 11,
ContractsStateMerkleData = 12,
ContractsStateMerkleMetadata = 13,
Messages = 14,
ProcessedTransactions = 15,
FuelBlockConsensus = 16,
ConsensusParametersVersions = 17,
StateTransitionBytecodeVersions = 18,
UploadedBytecodes = 19,
GenesisMetadata = 20,
}
impl Column {
pub const COUNT: usize = <Self as strum::EnumCount>::COUNT;
pub fn as_u32(&self) -> u32 {
*self as u32
}
}
impl StorageColumn for Column {
fn name(&self) -> &'static str {
self.into()
}
fn id(&self) -> u32 {
self.as_u32()
}
}