pub struct FixedDiscoveryValidationCache<const VALID: usize, const INSUFFICIENT: usize, const MAX_PACKED_BYTES: usize, const VALID_BUCKETS: usize, const INSUFFICIENT_BUCKETS: usize> { /* private fields */ }Expand description
Inline, allocation-free discovery validation caches for embedded and custom storage profiles.
Each cache is independently FIFO-bounded and uses stable ring slots plus a Lemire side index.
A valid advertisement larger than MAX_PACKED_BYTES is simply not memoized; it still passes
through normal validation. The bucket counts must provide the headroom returned by
discovery_validation_index_buckets.
FixedDiscoveryValidationCache<0, 0, 0, 1, 1> disables memoization without disabling
discovery.
Trait Implementations§
Source§impl<const VALID: usize, const INSUFFICIENT: usize, const MAX_PACKED_BYTES: usize, const VALID_BUCKETS: usize, const INSUFFICIENT_BUCKETS: usize> Debug for FixedDiscoveryValidationCache<VALID, INSUFFICIENT, MAX_PACKED_BYTES, VALID_BUCKETS, INSUFFICIENT_BUCKETS>
impl<const VALID: usize, const INSUFFICIENT: usize, const MAX_PACKED_BYTES: usize, const VALID_BUCKETS: usize, const INSUFFICIENT_BUCKETS: usize> Debug for FixedDiscoveryValidationCache<VALID, INSUFFICIENT, MAX_PACKED_BYTES, VALID_BUCKETS, INSUFFICIENT_BUCKETS>
Source§impl<const VALID: usize, const INSUFFICIENT: usize, const MAX_PACKED_BYTES: usize, const VALID_BUCKETS: usize, const INSUFFICIENT_BUCKETS: usize> Default for FixedDiscoveryValidationCache<VALID, INSUFFICIENT, MAX_PACKED_BYTES, VALID_BUCKETS, INSUFFICIENT_BUCKETS>
impl<const VALID: usize, const INSUFFICIENT: usize, const MAX_PACKED_BYTES: usize, const VALID_BUCKETS: usize, const INSUFFICIENT_BUCKETS: usize> Default for FixedDiscoveryValidationCache<VALID, INSUFFICIENT, MAX_PACKED_BYTES, VALID_BUCKETS, INSUFFICIENT_BUCKETS>
Source§fn default() -> FixedDiscoveryValidationCache<VALID, INSUFFICIENT, MAX_PACKED_BYTES, VALID_BUCKETS, INSUFFICIENT_BUCKETS>
fn default() -> FixedDiscoveryValidationCache<VALID, INSUFFICIENT, MAX_PACKED_BYTES, VALID_BUCKETS, INSUFFICIENT_BUCKETS>
Returns the “default value” for a type. Read more
Source§impl<const VALID: usize, const INSUFFICIENT: usize, const MAX_PACKED_BYTES: usize, const VALID_BUCKETS: usize, const INSUFFICIENT_BUCKETS: usize> DiscoveryValidationCache for FixedDiscoveryValidationCache<VALID, INSUFFICIENT, MAX_PACKED_BYTES, VALID_BUCKETS, INSUFFICIENT_BUCKETS>
impl<const VALID: usize, const INSUFFICIENT: usize, const MAX_PACKED_BYTES: usize, const VALID_BUCKETS: usize, const INSUFFICIENT_BUCKETS: usize> DiscoveryValidationCache for FixedDiscoveryValidationCache<VALID, INSUFFICIENT, MAX_PACKED_BYTES, VALID_BUCKETS, INSUFFICIENT_BUCKETS>
fn valid(&self, payload_hash: &[u8; 32]) -> Option<(&[u8], StampValue)>
fn insufficient(&self, payload_hash: &[u8; 32]) -> Option<StampValue>
fn remember_valid( &mut self, payload_hash: [u8; 32], packed_advertisement: &[u8], stamp_value: StampValue, )
fn remember_insufficient( &mut self, payload_hash: [u8; 32], stamp_value: StampValue, )
Auto Trait Implementations§
impl<const VALID: usize, const INSUFFICIENT: usize, const MAX_PACKED_BYTES: usize, const VALID_BUCKETS: usize, const INSUFFICIENT_BUCKETS: usize> Freeze for FixedDiscoveryValidationCache<VALID, INSUFFICIENT, MAX_PACKED_BYTES, VALID_BUCKETS, INSUFFICIENT_BUCKETS>
impl<const VALID: usize, const INSUFFICIENT: usize, const MAX_PACKED_BYTES: usize, const VALID_BUCKETS: usize, const INSUFFICIENT_BUCKETS: usize> RefUnwindSafe for FixedDiscoveryValidationCache<VALID, INSUFFICIENT, MAX_PACKED_BYTES, VALID_BUCKETS, INSUFFICIENT_BUCKETS>
impl<const VALID: usize, const INSUFFICIENT: usize, const MAX_PACKED_BYTES: usize, const VALID_BUCKETS: usize, const INSUFFICIENT_BUCKETS: usize> Send for FixedDiscoveryValidationCache<VALID, INSUFFICIENT, MAX_PACKED_BYTES, VALID_BUCKETS, INSUFFICIENT_BUCKETS>
impl<const VALID: usize, const INSUFFICIENT: usize, const MAX_PACKED_BYTES: usize, const VALID_BUCKETS: usize, const INSUFFICIENT_BUCKETS: usize> Sync for FixedDiscoveryValidationCache<VALID, INSUFFICIENT, MAX_PACKED_BYTES, VALID_BUCKETS, INSUFFICIENT_BUCKETS>
impl<const VALID: usize, const INSUFFICIENT: usize, const MAX_PACKED_BYTES: usize, const VALID_BUCKETS: usize, const INSUFFICIENT_BUCKETS: usize> Unpin for FixedDiscoveryValidationCache<VALID, INSUFFICIENT, MAX_PACKED_BYTES, VALID_BUCKETS, INSUFFICIENT_BUCKETS>
impl<const VALID: usize, const INSUFFICIENT: usize, const MAX_PACKED_BYTES: usize, const VALID_BUCKETS: usize, const INSUFFICIENT_BUCKETS: usize> UnsafeUnpin for FixedDiscoveryValidationCache<VALID, INSUFFICIENT, MAX_PACKED_BYTES, VALID_BUCKETS, INSUFFICIENT_BUCKETS>
impl<const VALID: usize, const INSUFFICIENT: usize, const MAX_PACKED_BYTES: usize, const VALID_BUCKETS: usize, const INSUFFICIENT_BUCKETS: usize> UnwindSafe for FixedDiscoveryValidationCache<VALID, INSUFFICIENT, MAX_PACKED_BYTES, VALID_BUCKETS, INSUFFICIENT_BUCKETS>
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