Skip to main content

ArchivedHistorySegment

Struct ArchivedHistorySegment 

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

Archived history segment after archiving is applied.

Dereferences to a fixed-size array of pieces, such that the number of pieces can’t be changed.

Implementations§

Source§

impl ArchivedHistorySegment

Source

pub const NUM_PIECES: usize = RecordedHistorySegment::NUM_PIECES

Number of pieces in one segment of archived history.

Source

pub const SIZE: usize

Size of archived history segment in bytes.

It includes erasure coded InnerPieces (both source and parity) that are composed of crate::pieces::Records together with corresponding roots and proofs.

Source

pub fn split_records_mut(&mut self) -> ([&mut Record; 128], [&mut Record; 128])

All records of this segment, split into source and parity halves

Source

pub fn pieces(&self) -> Box<dyn ExactSizeIterator<Item = Piece> + '_>

Iterator over all pieces, see FlatPieces::pieces() for details

Source

pub fn source_pieces(&self) -> impl ExactSizeIterator<Item = Piece> + '_

Iterator over source pieces, see FlatPieces::source_pieces() for details

Source

pub fn parity_pieces(&self) -> impl ExactSizeIterator<Item = Piece> + '_

Iterator over parity pieces, see FlatPieces::parity_pieces() for details

Source

pub fn to_shared(self) -> Self

Ensure archived history segment contains cheaply cloneable shared data.

Internally archived history segment uses CoW mechanism and can store either mutable owned data or data that is cheap to clone, calling this method will ensure further clones and returned pieces will not result in additional memory allocations.

Trait Implementations§

Source§

impl AsMut<[InnerPiece; 256]> for ArchivedHistorySegment

Source§

fn as_mut(&mut self) -> &mut [InnerPiece; 256]

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

impl AsMut<[[InnerPiece; 128]; 2]> for ArchivedHistorySegment

Source§

fn as_mut(&mut self) -> &mut [[InnerPiece; 128]; 2]

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

impl AsRef<[InnerPiece; 256]> for ArchivedHistorySegment

Source§

fn as_ref(&self) -> &[InnerPiece; 256]

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

impl AsRef<[[InnerPiece; 128]; 2]> for ArchivedHistorySegment

Source§

fn as_ref(&self) -> &[[InnerPiece; 128]; 2]

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

impl Clone for ArchivedHistorySegment

Source§

fn clone(&self) -> ArchivedHistorySegment

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ArchivedHistorySegment

Source§

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

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

impl Default for ArchivedHistorySegment

Source§

fn default() -> Self

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

impl Deref for ArchivedHistorySegment

Source§

type Target = [InnerPiece; 256]

The resulting type after dereferencing.
Source§

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

Dereferences the value.
Source§

impl DerefMut for ArchivedHistorySegment

Source§

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

Mutably dereferences the value.
Source§

impl Eq for ArchivedHistorySegment

Source§

impl Index<PiecePosition> for ArchivedHistorySegment

Source§

type Output = InnerPiece

The returned type after indexing.
Source§

fn index(&self, index: PiecePosition) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
Source§

impl IndexMut<PiecePosition> for ArchivedHistorySegment

Source§

fn index_mut(&mut self, index: PiecePosition) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
Source§

impl PartialEq for ArchivedHistorySegment

Source§

fn eq(&self, other: &ArchivedHistorySegment) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for ArchivedHistorySegment

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

Source§

type Output = T

Should always be Self
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 = !

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.