Skip to main content

Bloom

Struct Bloom 

Source
pub struct Bloom {
    pub mandatory: u128,
    pub optional: u128,
}
Expand description

Two 128-bit bloom filters (k=2 hashes) bundled into one wire type.

mandatory holds items the local node REQUIRES peers to also support.

optional holds items the local node would LIKE peers to support but doesn’t require.

Content-agnostic: items can be protocol ids, swarm keys, or any other identifier hashable as bytes. Discovery-layer hint, not

Fields§

§mandatory: u128§optional: u128

Implementations§

Source§

impl Bloom

Source

pub fn empty() -> Self

Empty filter.

Source

pub fn add_mandatory<I: AsRef<[u8]>>(&mut self, item: I)

Insert a mandatory item.

Source

pub fn add_optional<I: AsRef<[u8]>>(&mut self, item: I)

Insert an optional item.

Source

pub fn all(&self) -> u128

Union of mandatory + optional bits (every item the peer claims).

Source

pub fn may_contain<I: AsRef<[u8]>>(&self, item: I) -> bool

True if this filter might contain item in either set.

Source

pub fn covers_mandatory(&self, mine: &Self) -> bool

True if this peer’s full set of items covers every bit in mine.mandatory.

Source

pub fn intersects_optional(&self, mine: &Self) -> bool

True if this peer’s full set of items shares at least one bit with mine.optional. Trivially false if mine.optional is empty.

Source

pub fn is_empty(&self) -> bool

True if neither mandatory nor optional has any bit set.

Trait Implementations§

Source§

impl<'__de, __Context> BorrowDecode<'__de, __Context> for Bloom

Source§

fn borrow_decode<__D: BorrowDecoder<'__de, Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>

Attempt to decode this type with the given BorrowDecode.
Source§

impl Clone for Bloom

Source§

fn clone(&self) -> Bloom

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Bloom

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<__Context> Decode<__Context> for Bloom

Source§

fn decode<__D: Decoder<Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>

Attempt to decode this type with the given Decode.
Source§

impl Default for Bloom

Source§

fn default() -> Bloom

Returns the “default value” for a type. Read more
Source§

impl Encode for Bloom

Source§

fn encode<__E: Encoder>(&self, encoder: &mut __E) -> Result<(), EncodeError>

Encode a given type.
Source§

impl PartialEq for Bloom

Source§

fn eq(&self, other: &Bloom) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Bloom

Source§

impl Eq for Bloom

Source§

impl StructuralPartialEq for Bloom

Auto Trait Implementations§

§

impl Freeze for Bloom

§

impl RefUnwindSafe for Bloom

§

impl Send for Bloom

§

impl Sync for Bloom

§

impl Unpin for Bloom

§

impl UnsafeUnpin for Bloom

§

impl UnwindSafe for Bloom

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
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more