From 99ee250868fd25dc2bce5a60d582a9a30f329363 Mon Sep 17 00:00:00 2001 From: Ajeet D'Souza <98ajeet@gmail.com> Date: Fri, 26 Mar 2021 18:36:49 +0530 Subject: [PATCH] Add test for zero copy --- .gitignore | 12 +++++++++--- src/db/dir.rs | 23 +++++++++++++++++++++++ 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index bca6f9b..89b1201 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,13 @@ -# Generated by Cargo -# will have compiled files and executables +### Custom ### +.vscode/ + +### Rust ### +# Compiled files and executables debug/ target/ -# These are backup files generated by rustfmt +# Backup files generated by rustfmt **/*.rs.bk + +### Python ### +.mypy_cache/ diff --git a/src/db/dir.rs b/src/db/dir.rs index b869a3c..948cdf8 100644 --- a/src/db/dir.rs +++ b/src/db/dir.rs @@ -163,3 +163,26 @@ impl Display for DirDisplayScore<'_> { pub type Rank = f64; pub type Epoch = u64; + +#[cfg(test)] +mod tests { + use super::{Dir, DirList}; + + use std::borrow::Cow; + + #[test] + fn zero_copy() { + let dirs = DirList(vec![Dir { + path: "/".into(), + rank: 0.0, + last_accessed: 0, + }]); + + let bytes = dirs.to_bytes().unwrap(); + let dirs = DirList::from_bytes(&bytes).unwrap(); + + for dir in dirs.iter() { + assert!(matches!(dir.path, Cow::Borrowed(_))) + } + } +}