use super::{Error, RegisterCmd, SpentbookCmd};
use crate::{messaging::data::CmdResponse, types::Chunk};
use serde::{Deserialize, Serialize};
use xor_name::XorName;
#[derive(Eq, PartialEq, Clone, Serialize, Deserialize, Debug)]
pub enum DataCmd {
StoreChunk(Chunk),
Register(RegisterCmd),
Spentbook(SpentbookCmd),
}
impl DataCmd {
pub fn dst_name(&self) -> XorName {
use DataCmd::*;
match self {
StoreChunk(c) => *c.name(),
Register(c) => c.name(), Spentbook(c) => c.name(),
}
}
pub fn to_error_response(&self, error: Error) -> CmdResponse {
use DataCmd::*;
match self {
StoreChunk(_) => CmdResponse::StoreChunk(Err(error)),
Register(c) => c.to_error_response(error),
Spentbook(c) => c.to_error_response(error),
}
}
}