use nodedb_array::types::ArrayId;
#[derive(
Debug,
Clone,
PartialEq,
serde::Serialize,
serde::Deserialize,
zerompk::ToMessagePack,
zerompk::FromMessagePack,
)]
pub enum ClusterArrayOp {
Slice {
array_id: ArrayId,
slice_msgpack: Vec<u8>,
attr_projection: Vec<u32>,
limit: u32,
slice_hilbert_ranges: Vec<(u64, u64)>,
prefix_bits: u8,
system_as_of: Option<i64>,
valid_at_ms: Option<i64>,
},
Agg {
array_id: ArrayId,
attr_idx: u32,
reducer_msgpack: Vec<u8>,
group_by_dim: i32,
slice_hilbert_ranges: Vec<(u64, u64)>,
prefix_bits: u8,
system_as_of: Option<i64>,
valid_at_ms: Option<i64>,
},
Put {
array_id: ArrayId,
array_id_msgpack: Vec<u8>,
cells: Vec<(u64, Vec<u8>)>,
wal_lsn: u64,
prefix_bits: u8,
},
Delete {
array_id: ArrayId,
array_id_msgpack: Vec<u8>,
coords: Vec<(u64, Vec<u8>)>,
wal_lsn: u64,
prefix_bits: u8,
},
}