pub trait RawEncoding {
    type Trit: Trit;
    type Buf: RawEncodingBuf<Slice = Self>;

    const TRITS_PER_BYTE: usize;

    fn empty() -> &'static Self;
    fn len(&self) -> usize;
    fn as_i8_slice(&self) -> &[i8];
    unsafe fn as_i8_slice_mut(&mut self) -> &mut [i8];
    unsafe fn get_unchecked(&self, index: usize) -> Self::Trit;
    unsafe fn set_unchecked(&mut self, index: usize, trit: Self::Trit);
    unsafe fn slice_unchecked(&self, range: Range<usize>) -> &Self;
    unsafe fn slice_unchecked_mut(&mut self, range: Range<usize>) -> &mut Self;
    fn is_valid(repr: i8) -> bool;
    unsafe fn from_raw_unchecked(b: &[i8], num_trits: usize) -> &Self;
    unsafe fn from_raw_unchecked_mut(b: &mut [i8], num_trits: usize) -> &mut Self;
}
Expand description

A trait to be implemented by alternative trit encoding scheme slices.

Required Associated Types

The type of trit associated with this trit encoding.

The trit buffer encoding associated with this trit slice encoding.

Required Associated Constants

The number of trits that fit into this trit slice encoding.

Required Methods

Get an empty slice of this encoding

Get the number of trits in this buffer

Interpret the raw data of this encoding as a slice of i8.

Interpret the raw data of this encoding as a mutable slice of i8.

Get the trit at the given index

Set the trit at the given index

Get a slice of this slice

Get a mutable slice of this slice

Decide whether a byte is a valid series of trits in this encoding

Unsafely reinterpret a slice of bytes as trit slice

Unsafely reinterpret a slice of bytes as trit slice

Implementors