aboutsummaryrefslogtreecommitdiffstats
path: root/log_db/src/record.rs
diff options
context:
space:
mode:
authorJan Tuomi <jan@jantuomi.fi>2025-01-08 10:13:00 +0200
committerJan Tuomi <jan@jantuomi.fi>2025-01-10 19:48:50 +0200
commit3ffa6702cdb39c21a26ddc434f46d17d0104cb7b (patch)
treeb0d8e4dcbb967d90b90a338eb0cb50fc0f10c518 /log_db/src/record.rs
parentf19c7e6a41768e73a0f727deb22d65f1646a0777 (diff)
Fix compaction issue where get of valid logkey produced unset metadata row (len = 0)
Diffstat (limited to 'log_db/src/record.rs')
-rw-r--r--log_db/src/record.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/log_db/src/record.rs b/log_db/src/record.rs
index 61939e1..4a30902 100644
--- a/log_db/src/record.rs
+++ b/log_db/src/record.rs
@@ -120,3 +120,27 @@ pub trait Recordable {
/// Convert a vector of database values into the data structure implementing the `Recordable` trait.
fn from_record(record: Vec<Value>) -> Self;
}
+
+#[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);
+ }
+}