pub struct CuckooHashTableCreator<BlockSize, RngType, OC>where
BlockSize: ArrayLength,
RngType: CryptoRng + Send + Sync + 'static,
OC: ORAMCreator<BlockSize, RngType>,
OC::Output: ORAM<BlockSize> + Send + Sync + 'static,{ /* private fields */ }Expand description
Factory implementing OMapCreator for this type, based on any ORAM Creator. Otherwise it is very difficult to invoke CuckooHashTable::new() generically
Trait Implementations§
Source§impl<KeySize, ValueSize, BlockSize, RngType, OC> OMapCreator<KeySize, ValueSize, RngType> for CuckooHashTableCreator<BlockSize, RngType, OC>where
KeySize: ArrayLength + Add<ValueSize> + PartialDiv<U8> + 'static,
ValueSize: ArrayLength + PartialDiv<U8> + 'static,
BlockSize: ArrayLength + PartialDiv<U8> + 'static,
RngType: CryptoRng + Send + Sync + 'static,
OC: ORAMCreator<BlockSize, RngType>,
OC::Output: ORAM<BlockSize> + Send + Sync + 'static,
Sum<KeySize, ValueSize>: ArrayLength + Sub<KeySize, Output = ValueSize> + PartialDiv<U8>,
impl<KeySize, ValueSize, BlockSize, RngType, OC> OMapCreator<KeySize, ValueSize, RngType> for CuckooHashTableCreator<BlockSize, RngType, OC>where
KeySize: ArrayLength + Add<ValueSize> + PartialDiv<U8> + 'static,
ValueSize: ArrayLength + PartialDiv<U8> + 'static,
BlockSize: ArrayLength + PartialDiv<U8> + 'static,
RngType: CryptoRng + Send + Sync + 'static,
OC: ORAMCreator<BlockSize, RngType>,
OC::Output: ORAM<BlockSize> + Send + Sync + 'static,
Sum<KeySize, ValueSize>: ArrayLength + Sub<KeySize, Output = ValueSize> + PartialDiv<U8>,
Source§type Output = CuckooHashTable<KeySize, ValueSize, BlockSize, RngType, <OC as ORAMCreator<BlockSize, RngType>>::Output>
type Output = CuckooHashTable<KeySize, ValueSize, BlockSize, RngType, <OC as ORAMCreator<BlockSize, RngType>>::Output>
The storage type produced
Auto Trait Implementations§
impl<BlockSize, RngType, OC> Freeze for CuckooHashTableCreator<BlockSize, RngType, OC>where
PhantomData<fn() -> BlockSize>: Freeze,
PhantomData<fn() -> RngType>: Freeze,
PhantomData<fn() -> OC>: Freeze,
impl<BlockSize, RngType, OC> RefUnwindSafe for CuckooHashTableCreator<BlockSize, RngType, OC>where
PhantomData<fn() -> BlockSize>: RefUnwindSafe,
PhantomData<fn() -> RngType>: RefUnwindSafe,
PhantomData<fn() -> OC>: RefUnwindSafe,
impl<BlockSize, RngType, OC> Send for CuckooHashTableCreator<BlockSize, RngType, OC>where
PhantomData<fn() -> BlockSize>: Send,
PhantomData<fn() -> RngType>: Send,
PhantomData<fn() -> OC>: Send,
impl<BlockSize, RngType, OC> Sync for CuckooHashTableCreator<BlockSize, RngType, OC>where
PhantomData<fn() -> BlockSize>: Sync,
PhantomData<fn() -> RngType>: Sync,
PhantomData<fn() -> OC>: Sync,
impl<BlockSize, RngType, OC> Unpin for CuckooHashTableCreator<BlockSize, RngType, OC>where
PhantomData<fn() -> BlockSize>: Unpin,
PhantomData<fn() -> RngType>: Unpin,
PhantomData<fn() -> OC>: Unpin,
impl<BlockSize, RngType, OC> UnsafeUnpin for CuckooHashTableCreator<BlockSize, RngType, OC>where
PhantomData<fn() -> BlockSize>: UnsafeUnpin,
PhantomData<fn() -> RngType>: UnsafeUnpin,
PhantomData<fn() -> OC>: UnsafeUnpin,
impl<BlockSize, RngType, OC> UnwindSafe for CuckooHashTableCreator<BlockSize, RngType, OC>where
PhantomData<fn() -> BlockSize>: UnwindSafe,
PhantomData<fn() -> RngType>: UnwindSafe,
PhantomData<fn() -> OC>: 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