use super::*;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub(crate) enum Frag {
Set(Key, Value),
Del(Key),
Merge(Key, Value),
Base(Node, Option<PageId>),
ChildSplit(ChildSplit),
ParentSplit(ParentSplit),
Counter(usize),
}
impl Frag {
pub(super) fn unwrap_base(&self) -> &Node {
if let Frag::Base(base, ..) = self {
base
} else {
panic!("called unwrap_base_ptr on non-Base Frag!")
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub(crate) struct ParentSplit {
pub(crate) at: Bound,
pub(crate) to: PageId,
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub(crate) struct ChildSplit {
pub(crate) at: Bound,
pub(crate) to: PageId,
}