use super::*;
use raw::RawCommit;
use simperby_network::Error;
use simperby_network::*;
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct PayloadCommit {
pub commit: RawCommit,
pub hash: CommitHash,
pub parent_hash: CommitHash,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum BranchType {
Agenda,
AgendaProof,
Block,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct PayloadBranch {
pub branch_type: BranchType,
pub commit_hashes: Vec<CommitHash>,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum Message {
Commit(PayloadCommit),
Branch(PayloadBranch),
}
impl ToHash256 for Message {
fn to_hash256(&self) -> Hash256 {
Hash256::hash(serde_spb::to_vec(self).unwrap())
}
}
impl DmsMessage for Message {
fn check(&self) -> Result<(), Error> {
Ok(())
}
}
pub async fn flush(
_raw: Arc<RwLock<RawRepository>>,
_dms: Arc<RwLock<Dms<Message>>>,
) -> Result<(), Error> {
todo!()
}
pub async fn update(
_raw: Arc<RwLock<RawRepository>>,
_dms: Arc<RwLock<Dms<Message>>>,
) -> Result<(), Error> {
todo!()
}