Skip to main content

DiscoveryValidationCache

Trait DiscoveryValidationCache 

Source
pub trait DiscoveryValidationCache: Default {
    // Required methods
    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,
    );
}
Expand description

The memoization residence behind discovery stamp validation. Implementations may use growable host storage, fixed inline storage, external memory, or zero capacity; cache misses change only validation work, never acceptance semantics.

Required Methods§

Source

fn valid(&self, payload_hash: &[u8; 32]) -> Option<(&[u8], StampValue)>

Source

fn insufficient(&self, payload_hash: &[u8; 32]) -> Option<StampValue>

Source

fn remember_valid( &mut self, payload_hash: [u8; 32], packed_advertisement: &[u8], stamp_value: StampValue, )

Source

fn remember_insufficient( &mut self, payload_hash: [u8; 32], stamp_value: StampValue, )

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl DiscoveryValidationCache for HeapDiscoveryValidationCache

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>