pub struct ArchivedHashIndex { /* private fields */ }
Expand description

An archived hash index.

Implementations§

source§

impl ArchivedHashIndex

source

pub const fn len(&self) -> usize

Gets the number of items in the hash index.

source

pub fn hasher(&self) -> HashBuilder

Gets the hasher for this hash index. The hasher for all archived hash indexes is the same for reproducibility.

source

pub fn index<K: Hash + ?Sized>(&self, k: &K) -> Option<usize>

Returns the index where a key may be located in the hash index.

The hash index does not have access to the keys used to build it, so the key at the returned index must be checked for equality.

source

pub const fn is_empty(&self) -> bool

Returns whether there are no items in the hash index.

source

pub unsafe fn resolve_from_len( len: usize, pos: usize, resolver: HashIndexResolver, out: *mut Self )

Resolves an archived hash index from a given length and parameters.

Safety
  • len must be the number of elements in the hash index
  • pos must be the position of out within the archive
  • resolver must be the result of building and serializing a hash index
source§

impl ArchivedHashIndex

source

pub unsafe fn build_and_serialize<'a, K, V, S, I>( iter: I, serializer: &mut S, entries: &mut ScratchVec<MaybeUninit<(&'a K, &'a V)>> ) -> Result<HashIndexResolver, S::Error>where K: 'a + Hash, V: 'a, S: Serializer + ScratchSpace + ?Sized, I: ExactSizeIterator<Item = (&'a K, &'a V)>,

Builds and serializes a hash index from an iterator of key-value pairs.

Safety
  • The keys returned by the iterator must be unique.
  • entries must have a capacity of iter.len() entries.

Trait Implementations§

source§

impl<C: ArchiveContext + ?Sized> CheckBytes<C> for ArchivedHashIndexwhere C::Error: Error,

§

type Error = HashIndexError<<C as Fallible>::Error>

The error that may result from checking the type.
source§

unsafe fn check_bytes<'a>( value: *const Self, context: &mut C ) -> Result<&'a Self, Self::Error>

Checks whether the given pointer points to a valid value within the given context. Read more
source§

impl Debug for ArchivedHashIndex

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, F: ?Sized,

source§

fn deserialize( &self, deserializer: &mut D ) -> Result<With<T, W>, <D as Fallible>::Error>

Deserializes using the given deserializer
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

const: unstable · 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> LayoutRaw for T

source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
source§

impl<T> Pointee for T

§

type Metadata = ()

The type for metadata in pointers and references to Self.
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.