Skip to main content

KBucket

Struct KBucket 

Source
pub struct KBucket {}

Implementations§

Source§

impl KBucket

Source

pub fn new() -> Self

Create a new instance.

Source

pub fn arbiter(&self)

Default arbiter function for contacts with the same id. Uses contact.vectorClock to select which contact to update the k-bucket with. Contact with larger vectorClock field will be selected. If vectorClock is the same, candidat will be selected.

Source

pub fn distance(&self)

Default distance function. Finds the XOR distance between firstId and secondId.

Source

pub fn add(&self)

Adds a contact to the k-bucket.

Source

pub fn closest(&self)

Get the n closest contacts to the provided node id. “Closest” here means: closest according to the XOR metric of the contact node id.

Source

pub fn len(&self) -> usize

Counts the total number of contacts in the tree.

Source

pub fn is_empty(&self) -> bool

Source

pub fn get(&self)

Retrieves the contact.

Source

pub fn metadata(&self)

The metadata method serves as a container that can be used by implementations using k-bucket. One example is storing a timestamp to indicate the last time when a node in the bucket was responding to a ping.

Source

pub fn remove(&self)

Removes contact with the provided id.

Source

pub fn to_vec(&self)

Traverses the tree, putting all the contacts into one arraverses the tree, putting all the contacts into one vector.

Auto Trait Implementations§

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, 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.