Struct PieceArray

Source
pub struct PieceArray(/* private fields */);
Expand description

A piece of archival history in Subspace Network.

This version is allocated on the stack, for heap-allocated piece see Piece.

Internally piece contains a record and corresponding witness that together with segment commitment of the segment this piece belongs to can be used to verify that a piece belongs to the actual archival history of the blockchain.

Implementations§

Source§

impl PieceArray

Source

pub fn new_boxed() -> Box<Self>

Create boxed value without hitting stack overflow

Source

pub fn split(&self) -> (&Record, &RecordCommitment, &RecordWitness)

Split piece into underlying components.

Source

pub fn split_mut( &mut self, ) -> (&mut Record, &mut RecordCommitment, &mut RecordWitness)

Split piece into underlying mutable components.

Source

pub fn record(&self) -> &Record

Record contained within a piece.

Source

pub fn record_mut(&mut self) -> &mut Record

Mutable record contained within a piece.

Source

pub fn commitment(&self) -> &RecordCommitment

Commitment contained within a piece.

Source

pub fn commitment_mut(&mut self) -> &mut RecordCommitment

Mutable commitment contained within a piece.

Source

pub fn witness(&self) -> &RecordWitness

Witness contained within a piece.

Source

pub fn witness_mut(&mut self) -> &mut RecordWitness

Mutable witness contained within a piece.

Source

pub fn slice_to_repr(value: &[Self]) -> &[[u8; 1048672]]

Convenient conversion from slice of piece array to underlying representation for efficiency purposes.

Source

pub fn slice_from_repr(value: &[[u8; 1048672]]) -> &[Self]

Convenient conversion from slice of underlying representation to piece array for efficiency purposes.

Source

pub fn slice_mut_to_repr(value: &mut [Self]) -> &mut [[u8; 1048672]]

Convenient conversion from mutable slice of piece array to underlying representation for efficiency purposes.

Source

pub fn slice_mut_from_repr(value: &mut [[u8; 1048672]]) -> &mut [Self]

Convenient conversion from mutable slice of underlying representation to piece array for efficiency purposes.

Trait Implementations§

Source§

impl AsMut<[u8]> for PieceArray

Source§

fn as_mut(&mut self) -> &mut [u8]

Converts this type into a mutable reference of the (usually inferred) input type.
Source§

impl AsMut<[u8; 1048672]> for PieceArray

Source§

fn as_mut(&mut self) -> &mut [u8; 1048672]

Converts this type into a mutable reference of the (usually inferred) input type.
Source§

impl AsRef<[u8]> for PieceArray

Source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<[u8; 1048672]> for PieceArray

Source§

fn as_ref(&self) -> &[u8; 1048672]

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Clone for PieceArray

Source§

fn clone(&self) -> PieceArray

Returns a copy 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 PieceArray

Source§

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

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

impl Default for PieceArray

Source§

fn default() -> Self

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

impl Deref for PieceArray

Source§

type Target = [u8; 1048672]

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl DerefMut for PieceArray

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl From<&[u8; 1048672]> for &PieceArray

Source§

fn from(value: &[u8; 1048672]) -> Self

Converts to this type from the input type.
Source§

impl From<&PieceArray> for &[u8; 1048672]

Source§

fn from(value: &PieceArray) -> Self

Converts to this type from the input type.
Source§

impl From<&PieceArray> for Piece

Source§

fn from(value: &PieceArray) -> Self

Converts to this type from the input type.
Source§

impl From<&mut [u8; 1048672]> for &mut PieceArray

Source§

fn from(value: &mut [u8; 1048672]) -> Self

Converts to this type from the input type.
Source§

impl From<&mut PieceArray> for &mut [u8; 1048672]

Source§

fn from(value: &mut PieceArray) -> Self

Converts to this type from the input type.
Source§

impl Hash for PieceArray

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for PieceArray

Source§

fn cmp(&self, other: &PieceArray) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for PieceArray

Source§

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

Source§

fn partial_cmp(&self, other: &PieceArray) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

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

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

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

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

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

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Copy for PieceArray

Source§

impl Eq for PieceArray

Source§

impl StructuralPartialEq for PieceArray

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
§

impl<T, U> AsByteSlice<T> for U
where T: ToByteSlice, U: AsRef<[T]> + ?Sized,

§

fn as_byte_slice(&self) -> &[u8]

§

impl<T, U> AsMutByteSlice<T> for U
where T: ToMutByteSlice, U: AsMut<[T]> + ?Sized,

§

fn as_mut_byte_slice(&mut self) -> &mut [u8]

§

impl<U> AsMutSliceOf for U
where U: AsMut<[u8]> + ?Sized,

§

fn as_mut_slice_of<T>(&mut self) -> Result<&mut [T], Error>
where T: FromByteSlice,

§

impl<U> AsSliceOf for U
where U: AsRef<[u8]> + ?Sized,

§

fn as_slice_of<T>(&self) -> Result<&[T], Error>
where T: FromByteSlice,

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> ToHex for T
where T: AsRef<[u8]>,

Source§

fn encode_hex<U>(&self) -> U
where U: FromIterator<char>,

Encode the hex strict representing self into the result. Lower case letters are used (e.g. f9b4ca)
Source§

fn encode_hex_upper<U>(&self) -> U
where U: FromIterator<char>,

Encode the hex strict representing self into the result. Upper case letters are used (e.g. F9B4CA)
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<T> JsonSchemaMaybe for T