measurement_cache/
measurement_cache.rs

1// Example: export and import measurement cache.
2use virtualizer::{Virtualizer, VirtualizerOptions};
3
4fn main() {
5    // Example: export and import measurement cache (key -> measured size).
6    //
7    // This is useful if you want to persist measurements across screens/sessions so that the
8    // virtualizer can start with better estimates and avoid re-measuring everything.
9    let mut v1 = Virtualizer::new(VirtualizerOptions::new(10, |_| 1));
10    v1.measure(2, 10);
11    v1.measure(5, 42);
12
13    let snapshot = v1.export_measurement_cache();
14    println!("exported_cache_len={}", snapshot.len());
15
16    let mut v2 = Virtualizer::new(VirtualizerOptions::new(10, |_| 1));
17    println!(
18        "before import: size2={:?} size5={:?}",
19        v2.item_size(2),
20        v2.item_size(5)
21    );
22
23    v2.import_measurement_cache(snapshot);
24    println!(
25        "after import: cache_len={} size2={:?} size5={:?}",
26        v2.measurement_cache_len(),
27        v2.item_size(2),
28        v2.item_size(5)
29    );
30}