use crate::mvcc::key::RecordKey;
use crate::mvcc::CommitSequence;
use super::RecordWriteKind;
pub struct PreparedWriteMetadata {
key: RecordKey,
expected: Option<CommitSequence>,
kind: RecordWriteKind,
value_len: Option<u64>,
}
impl PreparedWriteMetadata {
pub(super) fn new(
key: RecordKey,
expected: Option<CommitSequence>,
kind: RecordWriteKind,
value_len: Option<u64>,
) -> Self {
Self {
key,
expected,
kind,
value_len,
}
}
pub fn key(&self) -> &[u8] {
self.key.bytes()
}
pub fn expected(&self) -> Option<CommitSequence> {
self.expected
}
pub fn live(&self) -> bool {
self.value_len.is_some()
}
pub fn value_len(&self) -> Option<u64> {
self.value_len
}
pub(crate) fn kind(&self) -> RecordWriteKind {
self.kind
}
}