use crate::operations::cdt_context::DEFAULT_CTX;
use crate::operations::{Operation, OperationBin, OperationData, OperationType};
use crate::Bin;
pub const fn get() -> Operation {
Operation {
op: OperationType::Read,
ctx: DEFAULT_CTX,
bin: OperationBin::All,
data: OperationData::None,
}
}
pub const fn get_header() -> Operation {
Operation {
op: OperationType::Read,
ctx: DEFAULT_CTX,
bin: OperationBin::None,
data: OperationData::None,
}
}
pub fn get_bin(bin_name: &str) -> Operation {
Operation {
op: OperationType::Read,
ctx: DEFAULT_CTX,
bin: OperationBin::Name(bin_name.into()),
data: OperationData::None,
}
}
pub fn put(bin: &Bin) -> Operation {
Operation {
op: OperationType::Write,
ctx: DEFAULT_CTX,
bin: OperationBin::Name(bin.name.clone()),
data: OperationData::Value(bin.value.clone()),
}
}
pub fn append(bin: &Bin) -> Operation {
Operation {
op: OperationType::Append,
ctx: DEFAULT_CTX,
bin: OperationBin::Name(bin.name.clone()),
data: OperationData::Value(bin.value.clone()),
}
}
pub fn prepend(bin: &Bin) -> Operation {
Operation {
op: OperationType::Prepend,
ctx: DEFAULT_CTX,
bin: OperationBin::Name(bin.name.clone()),
data: OperationData::Value(bin.value.clone()),
}
}
pub fn add(bin: &Bin) -> Operation {
Operation {
op: OperationType::Incr,
ctx: DEFAULT_CTX,
bin: OperationBin::Name(bin.name.clone()),
data: OperationData::Value(bin.value.clone()),
}
}
pub const fn touch() -> Operation {
Operation {
op: OperationType::Touch,
ctx: DEFAULT_CTX,
bin: OperationBin::None,
data: OperationData::None,
}
}
pub const fn delete() -> Operation {
Operation {
op: OperationType::Delete,
ctx: DEFAULT_CTX,
bin: OperationBin::None,
data: OperationData::None,
}
}