page-store 1.0.1

Management of data pages
Documentation

[SharedPagedData] manages numbered [Data] pages, which can be shared by multiple processes.

[PageStorageInfo] has information about the page sizes available. The default maximum page size is 4612.

Test example

    use page_store::{SharedPagedData,SaveOp};
    use atom_file::{MemFile,Data};
    use std::sync::Arc;

    let spd = SharedPagedData::new(MemFile::new());
    println!( "Number of page sizes={}", spd.psi.sizes() );
    println!( "Max page size={}", spd.psi.max_size_page() );
    let w = spd.new_writer();
    let pnum : u64 = w.alloc_page();
    w.set_data( pnum, Arc::new( vec![1,2,3,4] ) );
    w.save( SaveOp::Save );
    let r = spd.new_reader();
    let mut d : Data = w.get_data( pnum );
    assert!( *d == vec![1,2,3,4] );
    let md = Arc::make_mut(&mut d);
    md[0] = 2;
    w.set_data( pnum, d );
    w.save( SaveOp::Save );
    let d : Data = w.get_data( pnum );
    assert!( *d == vec![2,2,3,4] );
    let d : Data = r.get_data( pnum );
    assert!( *d == vec![1,2,3,4] ); // Reader still sees "old" data.