use crate::types::{Chunk, PublicKey};
use crate::{
messaging::{
data::{DataCmd, DataExchange, DataQuery, Result, StorageLevel},
EndUser, ServiceAuth,
},
types::ChunkAddress,
};
use serde::{Deserialize, Serialize};
use xor_name::XorName;
#[allow(clippy::large_enum_variant)]
#[derive(Debug, Eq, PartialEq, Clone, Serialize, Deserialize)]
pub enum NodeCmd {
Metadata {
cmd: DataCmd,
auth: ServiceAuth,
origin: EndUser,
},
StoreChunk {
chunk: Chunk,
auth: ServiceAuth,
origin: EndUser,
},
RecordStorageLevel {
node_id: PublicKey,
section: XorName,
level: StorageLevel,
},
ReplicateChunk(Chunk),
RepublishChunk(Chunk),
ReceiveExistingData {
metadata: DataExchange,
},
}
#[derive(Debug, Eq, PartialEq, Clone, Serialize, Deserialize)]
pub enum NodeQuery {
Metadata {
query: DataQuery,
auth: ServiceAuth,
origin: EndUser,
},
GetChunk {
address: ChunkAddress,
origin: EndUser,
},
}
#[allow(clippy::large_enum_variant)]
#[derive(Debug, Eq, PartialEq, Clone, Serialize, Deserialize)]
pub enum NodeQueryResponse {
GetChunk(Result<Chunk>),
}