[−][src]Struct grin_core::core::pmmr::VecBackend
Simple/minimal/naive MMR backend implementation backed by Vec
Fields
data: Option<Vec<T>>
Backend elements (optional, possible to just store hashes).
hashes: Vec<Hash>
Vec of hashes for the PMMR (both leaves and parents).
removed: HashSet<u64>
Positions of removed elements (is this applicable if we do not store data?)
Implementations
impl<T: PMMRable> VecBackend<T>
[src]
pub fn new() -> VecBackend<T>
[src]
Instantiates a new empty vec backend.
pub fn new_hash_only() -> VecBackend<T>
[src]
Instantiate a new empty "hash only" vec backend.
pub fn size(&self) -> u64
[src]
Size of this vec backend in hashes.
Trait Implementations
impl<T: PMMRable> Backend<T> for VecBackend<T>
[src]
fn append(&mut self, elmt: &T, hashes: Vec<Hash>) -> Result<(), String>
[src]
fn get_hash(&self, position: u64) -> Option<Hash>
[src]
fn get_data(&self, position: u64) -> Option<T::E>
[src]
fn get_from_file(&self, position: u64) -> Option<Hash>
[src]
fn get_data_from_file(&self, position: u64) -> Option<T::E>
[src]
fn data_as_temp_file(&self) -> Result<File, String>
[src]
fn n_unpruned_leaves(&self) -> u64
[src]
Number of leaves in the MMR
fn leaf_pos_iter(&self) -> Box<dyn Iterator<Item = u64>>
[src]
fn leaf_idx_iter(&self, from_idx: u64) -> Box<dyn Iterator<Item = u64>>
[src]
fn remove(&mut self, position: u64) -> Result<(), String>
[src]
fn rewind(
&mut self,
position: u64,
_rewind_rm_pos: &Bitmap
) -> Result<(), String>
[src]
&mut self,
position: u64,
_rewind_rm_pos: &Bitmap
) -> Result<(), String>
fn snapshot(&self, _header: &BlockHeader) -> Result<(), String>
[src]
fn release_files(&mut self)
[src]
fn dump_stats(&self)
[src]
impl<T: Clone + PMMRable> Clone for VecBackend<T>
[src]
fn clone(&self) -> VecBackend<T>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<T: Debug + PMMRable> Debug for VecBackend<T>
[src]
Auto Trait Implementations
impl<T> RefUnwindSafe for VecBackend<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Send for VecBackend<T> where
T: Send,
T: Send,
impl<T> Sync for VecBackend<T> where
T: Sync,
T: Sync,
impl<T> Unpin for VecBackend<T> where
T: Unpin,
T: Unpin,
impl<T> UnwindSafe for VecBackend<T> where
T: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> CloneAny for T where
T: Clone + Any,
T: Clone + Any,
fn clone_any(&self) -> Box<dyn CloneAny + 'static>
fn clone_any_send(&self) -> Box<dyn CloneAny + 'static + Send> where
T: Send,
T: Send,
fn clone_any_sync(&self) -> Box<dyn CloneAny + 'static + Sync> where
T: Sync,
T: Sync,
fn clone_any_send_sync(&self) -> Box<dyn CloneAny + 'static + Sync + Send> where
T: Send + Sync,
T: Send + Sync,
impl<T> DebugAny for T where
T: Any + Debug,
T: Any + Debug,
impl<T> Erased for T
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> UnsafeAny for T where
T: Any,
T: Any,