diff options
| author | Jan Tuomi <jan@jantuomi.fi> | 2025-02-21 14:25:15 +0200 |
|---|---|---|
| committer | Jan Tuomi <jan@jantuomi.fi> | 2025-02-21 14:28:00 +0200 |
| commit | 147c589ce617c1d500c3b698321eeb71bacd74a3 (patch) | |
| tree | b5cc3041ad5043bf1228634c1cf8ca933a6c8d54 /log_db/src/record.rs | |
| parent | bea37e2834a5265035b960277ff27e5f8d74d079 (diff) | |
Rename Record -> Row
Diffstat (limited to 'log_db/src/record.rs')
| -rw-r--r-- | log_db/src/record.rs | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/log_db/src/record.rs b/log_db/src/record.rs deleted file mode 100644 index 8108fb5..0000000 --- a/log_db/src/record.rs +++ /dev/null @@ -1,81 +0,0 @@ -use super::*; - -#[derive(Debug, Clone)] -pub struct Record { - pub values: Vec<Value>, - pub tombstone: bool, -} - -impl Record { - pub fn serialize(&self) -> Vec<u8> { - let mut bytes = Vec::new(); - - if self.tombstone { - bytes.extend(&[B_TOMBSTONE]); - } else { - bytes.extend(&[B_LIVE]); - } - - for value in &self.values { - bytes.extend(value.serialize()); - } - bytes - } - - pub fn deserialize(bytes: &[u8]) -> Record { - assert!(bytes.len() > 0); - - let mut values = Vec::new(); - - let tombstone = bytes[0] == B_TOMBSTONE; - - let mut start = 1; - while start < bytes.len() { - let (rv, consumed) = Value::deserialize(&bytes[start..]); - values.push(rv); - start += consumed; - } - Record { values, tombstone } - } - - pub fn from(values: &[Value]) -> Record { - Record { - values: values.to_vec(), - tombstone: false, - } - } - - pub fn at(&self, index: usize) -> &Value { - &self.values[index] - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_record_serialize_deserialize() { - let record = Record { - values: vec![ - Value::Int(1), - Value::String("hello".to_string()), - Value::Bytes(vec![0, 1, 2, 3]), - ], - tombstone: true, - }; - - let serialized = record.serialize(); - let deserialized = Record::deserialize(&serialized); - let reserialized = deserialized.serialize(); - - assert_eq!(serialized.len(), reserialized.len()); - assert_eq!(record.values, deserialized.values); - } -} - -#[derive(Clone, Debug)] -pub enum TxEntry { - Upsert { record: Record }, - Delete { record: Record }, -} |
