loro 1.17.0

Loro is a high-performance CRDTs framework. Make your app collaborative efforlessly.
Documentation
use loro::LoroDoc;

#[test]
fn decoded_value_cache_configuration_is_local_and_forks_inherit_it() {
    let doc = LoroDoc::new();
    assert_eq!(doc.decoded_value_cache_limit(), 2048);
    doc.get_map("map").insert("key", "value").unwrap();
    doc.commit();
    doc.set_decoded_value_cache_limit(8192);

    let fork = doc.fork();
    let fork_at = doc.fork_at(&doc.state_frontiers()).unwrap();
    let shared = doc.clone();
    assert_eq!(fork.decoded_value_cache_limit(), 8192);
    assert_eq!(fork_at.decoded_value_cache_limit(), 8192);
    shared.set_decoded_value_cache_limit(0);
    assert_eq!(doc.decoded_value_cache_limit(), 0);
    assert_eq!(fork.decoded_value_cache_limit(), 8192);
    fork_at.set_decoded_value_cache_limit(1);
    assert_eq!(fork.decoded_value_cache_limit(), 8192);

    let restored =
        LoroDoc::from_snapshot(&doc.export(loro::ExportMode::Snapshot).unwrap()).unwrap();
    assert_eq!(restored.decoded_value_cache_limit(), 2048);
    assert_eq!(restored.get_deep_value(), doc.get_deep_value());
    doc.checkout(&doc.state_frontiers()).unwrap();
    assert_eq!(doc.fork().decoded_value_cache_limit(), 0);
}