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