in src/storage/seg/src/tests.rs [111:155]
fn overwrite() {
let ttl = Duration::ZERO;
let segment_size = 4096;
let segments = 64;
let heap_size = segments * segment_size as usize;
let mut cache = Seg::builder()
.segment_size(segment_size)
.heap_size(heap_size)
.build()
.expect("failed to create cache");
assert_eq!(cache.items(), 0);
assert_eq!(cache.segments.free(), 64);
assert!(cache.get(b"drink").is_none());
println!("==== first insert ====");
assert!(cache.insert(b"drink", b"coffee", None, ttl).is_ok());
assert_eq!(cache.segments.free(), 63);
assert_eq!(cache.items(), 1);
let item = cache.get(b"drink");
assert!(item.is_some());
let item = item.unwrap();
let value = item.value();
assert_eq!(value, b"coffee", "item is: {:?}", item);
println!("==== second insert ====");
assert!(cache.insert(b"drink", b"espresso", None, ttl).is_ok());
assert_eq!(cache.segments.free(), 63);
assert_eq!(cache.items(), 1);
let item = cache.get(b"drink");
assert!(item.is_some());
let item = item.unwrap();
let value = item.value();
assert_eq!(value, b"espresso", "item is: {:?}", item);
println!("==== third insert ====");
assert!(cache.insert(b"drink", b"whisky", None, ttl).is_ok());
assert_eq!(cache.segments.free(), 63);
assert_eq!(cache.items(), 1);
let item = cache.get(b"drink");
assert!(item.is_some());
let item = item.unwrap();
let value = item.value();
assert_eq!(value, b"whisky", "item is: {:?}", item);
}