Code

Struct Code 

Source
pub struct Code {
    pub content: u32,
    pub len: u32,
}
Expand description

Represents a codeword.

Fields§

§content: u32

Concatenated fragments of the codeword.

If the code is too short to take up all the bits, only the least significant ones are used. The first fragments of the code are stored either on the most significant or, in the case of an reversed code, on the least significant, of these bits.

If the code is too long, only the last few fragments are explicitly stored. Fragments that do not fit contain zeros and are not explicitly stored.

§len: u32

Length of the code in fragments.

Implementations§

Source§

impl Code

Source

pub unsafe fn get_rev_unchecked( &self, fragment_nr: u32, degree: impl TreeDegree, ) -> u32

Gets fragment_nr-th fragment from either the end or, if self is reversed, the beginning.

Result is undefined if fragment_nr is out of bounds (i.e. not less than len).

Source

pub fn get_rev(&self, fragment_nr: u32, degree: impl TreeDegree) -> Option<u32>

Gets fragment_nr-th fragment from either the end or, if self is reversed, the beginning.

Returns None if fragment_nr is out of bounds (i.e. not less than len).

Source

pub unsafe fn get_unchecked( &self, fragment_nr: u32, degree: impl TreeDegree, ) -> u32

Gets fragment_nr-th fragment from either the beginning or, if self is reversed, the end.

Result is undefined if fragment_nr is out of bounds (i.e. not less than len).

Source

pub fn get(&self, fragment_nr: u32, degree: impl TreeDegree) -> Option<u32>

Gets fragment_nr-th fragment from either the beginning or, if self is reversed, the end.

Returns None if fragment_nr is out of bounds (i.e. not less than len).

Source

pub fn extract_first(&mut self, degree: impl TreeDegree) -> Option<u32>

Extracts and returns the first remaining fragment of the unreversed code.

Return None if code is empty.

Source

pub fn extract_rev_first(&mut self, degree: impl TreeDegree) -> Option<u32>

Extracts and returns the first remaining fragment of the reversed code.

Return None if code is empty.

Source

pub fn is_empty(&self) -> bool

Returns whether self consists of zero fragments.

Source

pub fn iter<D: TreeDegree>(&self, degree: D) -> CodeIterator<D>

Returns iterator over the fragments of unreversed code.

Source

pub fn iter_rev<D: TreeDegree>(&self, degree: D) -> ReversedCodeIterator<D>

Returns iterator over the fragments of reversed code.

Trait Implementations§

Source§

impl Clone for Code

Source§

fn clone(&self) -> Code

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 Code

Source§

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

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

impl Default for Code

Source§

fn default() -> Code

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

impl PartialEq for Code

Source§

fn eq(&self, other: &Code) -> 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 Code

Source§

impl Eq for Code

Source§

impl StructuralPartialEq for Code

Auto Trait Implementations§

§

impl Freeze for Code

§

impl RefUnwindSafe for Code

§

impl Send for Code

§

impl Sync for Code

§

impl Unpin for Code

§

impl UnwindSafe for Code

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

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