[][src]Struct xor_name::XorName

pub struct XorName(pub [u8; 32]);

A 256-bit number, viewed as a point in XOR space.

This wraps an array of 32 bytes, i. e. a number between 0 and 2256 - 1.

XOR space is the space of these numbers, with the XOR metric as a notion of distance, i. e. the points with IDs x and y are considered to have distance x xor y.

Implementations

impl XorName[src]

pub fn random() -> XorName[src]

Generate a random XorName

pub fn bit(&self, i: u8) -> bool[src]

Returns true if the i-th bit is 1.

pub fn cmp_distance(&self, lhs: &Self, rhs: &Self) -> Ordering[src]

Compares the distance of the arguments to self. Returns Less if lhs is closer, Greater if rhs is closer, and Equal if lhs == rhs. (The XOR distance can only be equal if the arguments are equal.)

Trait Implementations

impl AsRef<[u8]> for XorName[src]

impl AsRef<XorName> for XorName[src]

impl Binary for XorName[src]

impl Clone for XorName[src]

impl Copy for XorName[src]

impl Debug for XorName[src]

impl Default for XorName[src]

impl Deref for XorName[src]

type Target = [u8]

The resulting type after dereferencing.

impl<'de> Deserialize<'de> for XorName[src]

impl Display for XorName[src]

impl Distribution<XorName> for Standard[src]

impl Eq for XorName[src]

impl Hash for XorName[src]

impl LowerHex for XorName[src]

impl Not for XorName[src]

type Output = Self

The resulting type after applying the ! operator.

impl Ord for XorName[src]

impl PartialEq<XorName> for XorName[src]

impl PartialOrd<XorName> for XorName[src]

impl Serialize for XorName[src]

impl StructuralEq for XorName[src]

impl StructuralPartialEq for XorName[src]

impl UpperHex for XorName[src]

Auto Trait Implementations

impl RefUnwindSafe for XorName

impl Send for XorName

impl Sync for XorName

impl Unpin for XorName

impl UnwindSafe for XorName

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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