rhiza-node 0.1.0

Network node runtime for rhiza
Documentation
use rhiza_core::{LogHash, LogIndex};
use rhiza_graph::RequestRecord;

pub use rhiza_graph::{GraphCommandResultV1, GraphCommandV1, GraphValueV1};

#[derive(Clone, Debug, Eq, PartialEq)]
pub struct GraphReadResponse {
    pub value: Option<GraphValueV1>,
    pub applied_index: LogIndex,
    pub hash: LogHash,
}

#[derive(Clone, Debug, Eq, PartialEq)]
pub struct GraphMutationOutcome {
    applied_index: LogIndex,
    hash: LogHash,
    result: GraphCommandResultV1,
}

impl GraphMutationOutcome {
    pub(crate) fn from_record(record: RequestRecord) -> Self {
        Self {
            applied_index: record.original_log_index(),
            hash: record.original_log_hash(),
            result: record.result().clone(),
        }
    }

    pub const fn applied_index(&self) -> LogIndex {
        self.applied_index
    }

    pub const fn hash(&self) -> LogHash {
        self.hash
    }

    pub const fn result(&self) -> &GraphCommandResultV1 {
        &self.result
    }
}