mirror of
https://gitlab.com/pulsechaincom/lighthouse-pulse.git
synced 2025-01-10 21:11:22 +00:00
30 lines
859 B
Rust
30 lines
859 B
Rust
|
use crate::{DBColumn, Error, StoreItem};
|
||
|
use ssz::{Decode, Encode};
|
||
|
use types::Hash256;
|
||
|
|
||
|
pub const CURRENT_SCHEMA_VERSION: SchemaVersion = SchemaVersion(1);
|
||
|
|
||
|
// All the keys that get stored under the `BeaconMeta` column.
|
||
|
//
|
||
|
// We use `repeat_byte` because it's a const fn.
|
||
|
pub const SCHEMA_VERSION_KEY: Hash256 = Hash256::repeat_byte(0);
|
||
|
pub const CONFIG_KEY: Hash256 = Hash256::repeat_byte(1);
|
||
|
pub const SPLIT_KEY: Hash256 = Hash256::repeat_byte(2);
|
||
|
|
||
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
|
||
|
pub struct SchemaVersion(pub u64);
|
||
|
|
||
|
impl StoreItem for SchemaVersion {
|
||
|
fn db_column() -> DBColumn {
|
||
|
DBColumn::BeaconMeta
|
||
|
}
|
||
|
|
||
|
fn as_store_bytes(&self) -> Vec<u8> {
|
||
|
self.0.as_ssz_bytes()
|
||
|
}
|
||
|
|
||
|
fn from_store_bytes(bytes: &[u8]) -> Result<Self, Error> {
|
||
|
Ok(SchemaVersion(u64::from_ssz_bytes(bytes)?))
|
||
|
}
|
||
|
}
|