signer-daemon 0.3.2

Signer daemon package.
Documentation
use serde::{Deserialize, Serialize};

use crate::entity::crdt_event;

#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "poem-openapi", derive(poem_openapi::Object))]
pub struct CrdtEventVO {
    pub clock: i32,
    pub peer: String,
    pub payload: String,
    pub revert: Option<String>,
}

impl From<crdt_event::Model> for CrdtEventVO {
    fn from(value: crdt_event::Model) -> Self {
        Self {
            clock: value.clock,
            peer: value.peer,
            payload: value.payload,
            revert: value.revert,
        }
    }
}

impl Into<crdt_event::Model> for CrdtEventVO {
    fn into(self) -> crdt_event::Model {
        crdt_event::Model {
            clock: self.clock,
            peer: self.peer,
            payload: self.payload,
            revert: self.revert.map(|d| serde_json::to_string(&d).unwrap()),
        }
    }
}