pub struct PageRangeSnapshot<K>(/* private fields */);
Expand description
An owned point-in-time snapshot of the PageRange
returned from a call to
MerkleSearchTree::serialise_page_ranges()
.
Generating a PageRangeSnapshot
from a set of PageRange
instances
clones all the bounding keys in each PageRange
, and therefore can only
be generated if the key type K
implements Clone
.
let mut t = MerkleSearchTree::default();
t.upsert("bananas", &42);
// Rehash the tree before generating the page ranges
let _ = t.root_hash();
// Generate the hashes & page ranges, immutably borrowing the tree
let ranges = t.serialise_page_ranges().unwrap();
// Obtain an owned PageRangeSnapshot from the borrowed PageRange, in turn
// releasing the immutable reference to the tree.
let snap = PageRangeSnapshot::from(ranges);
// The tree is now mutable again.
t.upsert("platanos", &42);
A PageRangeSnapshot
can also be generated from owned key values using
the OwnedPageRange
type to eliminate clones where unnecessary.
Implementations§
Source§impl<K> PageRangeSnapshot<K>
impl<K> PageRangeSnapshot<K>
Sourcepub fn iter(&self) -> impl ExactSizeIterator<Item = PageRange<'_, K>>where
K: PartialOrd,
pub fn iter(&self) -> impl ExactSizeIterator<Item = PageRange<'_, K>>where
K: PartialOrd,
Return an iterator of PageRange
from the snapshot content.
Trait Implementations§
Source§impl<K: Clone> Clone for PageRangeSnapshot<K>
impl<K: Clone> Clone for PageRangeSnapshot<K>
Source§fn clone(&self) -> PageRangeSnapshot<K>
fn clone(&self) -> PageRangeSnapshot<K>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<K: Debug> Debug for PageRangeSnapshot<K>
impl<K: Debug> Debug for PageRangeSnapshot<K>
Source§impl<K> From<Vec<OwnedPageRange<K>>> for PageRangeSnapshot<K>
impl<K> From<Vec<OwnedPageRange<K>>> for PageRangeSnapshot<K>
Source§fn from(value: Vec<OwnedPageRange<K>>) -> Self
fn from(value: Vec<OwnedPageRange<K>>) -> Self
Converts to this type from the input type.
Source§impl<K> FromIterator<OwnedPageRange<K>> for PageRangeSnapshot<K>
impl<K> FromIterator<OwnedPageRange<K>> for PageRangeSnapshot<K>
Source§fn from_iter<T: IntoIterator<Item = OwnedPageRange<K>>>(iter: T) -> Self
fn from_iter<T: IntoIterator<Item = OwnedPageRange<K>>>(iter: T) -> Self
Creates a value from an iterator. Read more
Source§impl<'a, K> FromIterator<PageRange<'a, K>> for PageRangeSnapshot<K>where
K: Clone + 'a,
impl<'a, K> FromIterator<PageRange<'a, K>> for PageRangeSnapshot<K>where
K: Clone + 'a,
Source§impl<K: PartialEq> PartialEq for PageRangeSnapshot<K>
impl<K: PartialEq> PartialEq for PageRangeSnapshot<K>
impl<K> StructuralPartialEq for PageRangeSnapshot<K>
Auto Trait Implementations§
impl<K> Freeze for PageRangeSnapshot<K>
impl<K> RefUnwindSafe for PageRangeSnapshot<K>where
K: RefUnwindSafe,
impl<K> Send for PageRangeSnapshot<K>where
K: Send,
impl<K> Sync for PageRangeSnapshot<K>where
K: Sync,
impl<K> Unpin for PageRangeSnapshot<K>where
K: Unpin,
impl<K> UnwindSafe for PageRangeSnapshot<K>where
K: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more