pub struct HeapTree<T> {
pub height: usize,
/* private fields */
}Expand description
Represents a heap tree structure.
Fields§
§height: usizeHeight of the tree, public (tree with a single element has height 1)
Implementations§
Source§impl<T> HeapTree<T>
impl<T> HeapTree<T>
Sourcepub fn get_index(&self, depth: usize, path: PositionType) -> usize
pub fn get_index(&self, depth: usize, path: PositionType) -> usize
Get the index of a node at a certain depth and path
Sourcepub fn get_path_at_depth(&self, depth: usize, path: PositionType) -> &T
pub fn get_path_at_depth(&self, depth: usize, path: PositionType) -> &T
Get a node of a certain path at a certain depth Reveals depth and path
Sourcepub fn get_path_at_depth_mut(
&mut self,
depth: usize,
path: PositionType,
) -> &mut T
pub fn get_path_at_depth_mut( &mut self, depth: usize, path: PositionType, ) -> &mut T
Get a node of a certain path at a certain depth Reveals depth and path
Sourcepub fn get_sibling(&self, depth: usize, path: PositionType) -> &T
pub fn get_sibling(&self, depth: usize, path: PositionType) -> &T
Given a path and a node at certain depth, return the other child of that node’s parent.
Source§impl<V: Cmov + Pod> HeapTree<Bucket<V>>
impl<V: Cmov + Pod> HeapTree<Bucket<V>>
Sourcepub fn read_path(&mut self, path: PositionType, out: &mut [Block<V>])
pub fn read_path(&mut self, path: PositionType, out: &mut [Block<V>])
Reads all the blocks in a path from the ORAM tree into an array in order: [Bucket0 (Root): [Block0, Block1], Bucket1 (Level1): [Block2, Block3], …]
Sourcepub fn write_path(&mut self, path: PositionType, in_: &[Block<V>])
pub fn write_path(&mut self, path: PositionType, in_: &[Block<V>])
Writes a path to the ORAM tree, expects the input to be in the correct format, no checks are done: [Bucket0 (Root): [Block0, Block1], Bucket1 (Level1): [Block2, Block3], …]
Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for HeapTree<T>
impl<T> RefUnwindSafe for HeapTree<T>where
T: RefUnwindSafe,
impl<T> Send for HeapTree<T>where
T: Send,
impl<T> Sync for HeapTree<T>where
T: Sync,
impl<T> Unpin for HeapTree<T>where
T: Unpin,
impl<T> UnwindSafe for HeapTree<T>where
T: 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