ParcodeMapPromise

Struct ParcodeMapPromise 

Source
pub struct ParcodeMapPromise<'a, K, V> { /* private fields */ }
Expand description

A promise for a HashMap that supports lazy loading and efficient lookups.

This type wraps a ChunkNode representing a HashMap and provides methods to:

  • Load the entire map into memory
  • Perform O(1) lookups by key without loading the entire map

Implementations§

Source§

impl<'a, K, V> ParcodeMapPromise<'a, K, V>

Source

pub fn new(node: ChunkNode<'a>) -> Self

Internal constructor.

Source

pub fn load(&self) -> Result<HashMap<K, V>>

Loads the full map by iterating all shards.

This reconstructs the entire HashMap in memory by:

  1. Reading the number of shards from the container
  2. Iterating over each shard and deserializing its entries
  3. Merging all entries into a single HashMap
Source

pub fn get(&self, key: &K) -> Result<Option<V>>

Performs a fast lookup for a single key without loading the entire map.

This method:

  1. Computes the hash of the key
  2. Determines which shard contains the key (via modulo)
  3. Loads only that shard
  4. Scans the shard’s hash array for matches
  5. Verifies the key on hash collision and returns the value
§Performance
  • O(1) shard selection
  • O(N/S) linear scan within shard (where S = number of shards)
  • SIMD-optimized hash comparison on supported platforms
Source§

impl<'a, K, V> ParcodeMapPromise<'a, K, V>
where K: Hash + Eq + DeserializeOwned + Send + Sync + 'static, V: ParcodeItem + Send + Sync + ParcodeLazyRef<'a> + 'a,

Source

pub fn get_lazy(&self, key: &K) -> Result<Option<V::Lazy>>

Performs a lazy lookup for a single key.

This returns a Lazy Mirror of the value, allowing access to its local fields without loading its heavy dependencies.

Trait Implementations§

Source§

impl<'a, K: Debug, V: Debug> Debug for ParcodeMapPromise<'a, K, V>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a, K, V> Freeze for ParcodeMapPromise<'a, K, V>

§

impl<'a, K, V> !RefUnwindSafe for ParcodeMapPromise<'a, K, V>

§

impl<'a, K, V> Send for ParcodeMapPromise<'a, K, V>
where K: Send, V: Send,

§

impl<'a, K, V> Sync for ParcodeMapPromise<'a, K, V>
where K: Sync, V: Sync,

§

impl<'a, K, V> Unpin for ParcodeMapPromise<'a, K, V>
where K: Unpin, V: Unpin,

§

impl<'a, K, V> !UnwindSafe for ParcodeMapPromise<'a, K, V>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V