pub struct Piece(/* private fields */);
Expand description
A piece of archival history.
This version is allocated on the heap, for stack-allocated piece see PieceArray
.
Internally piece contains a record and corresponding proof that together with segment root 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§
Methods from Deref<Target = PieceArray>§
pub const SIZE: usize = 1_048_896usize
Sourcepub fn is_valid(&self, segment_root: &SegmentRoot, position: u32) -> bool
pub fn is_valid(&self, segment_root: &SegmentRoot, position: u32) -> bool
Validate proof embedded within a piece produced by the archiver
Sourcepub fn split(&self) -> (&Record, &RecordRoot, &RecordChunksRoot, &RecordProof)
pub fn split(&self) -> (&Record, &RecordRoot, &RecordChunksRoot, &RecordProof)
Split piece into underlying components.
Sourcepub fn split_mut(
&mut self,
) -> (&mut Record, &mut RecordRoot, &mut RecordChunksRoot, &mut RecordProof)
pub fn split_mut( &mut self, ) -> (&mut Record, &mut RecordRoot, &mut RecordChunksRoot, &mut RecordProof)
Split piece into underlying mutable components.
Sourcepub fn record_mut(&mut self) -> &mut Record
pub fn record_mut(&mut self) -> &mut Record
Mutable record contained within a piece.
Sourcepub fn root(&self) -> &RecordRoot
pub fn root(&self) -> &RecordRoot
Root contained within a piece.
Sourcepub fn root_mut(&mut self) -> &mut RecordRoot
pub fn root_mut(&mut self) -> &mut RecordRoot
Mutable root contained within a piece.
Sourcepub fn parity_chunks_root(&self) -> &RecordChunksRoot
pub fn parity_chunks_root(&self) -> &RecordChunksRoot
Parity chunks root contained within a piece.
Sourcepub fn parity_chunks_root_mut(&mut self) -> &mut RecordChunksRoot
pub fn parity_chunks_root_mut(&mut self) -> &mut RecordChunksRoot
Mutable parity chunks root contained within a piece.
Sourcepub fn proof(&self) -> &RecordProof
pub fn proof(&self) -> &RecordProof
Proof contained within a piece.
Sourcepub fn proof_mut(&mut self) -> &mut RecordProof
pub fn proof_mut(&mut self) -> &mut RecordProof
Mutable proof contained within a piece.
Trait Implementations§
Source§impl Decode for Piece
impl Decode for Piece
Source§fn decode<I: Input>(input: &mut I) -> Result<Self, Error>
fn decode<I: Input>(input: &mut I) -> Result<Self, Error>
§fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>,
) -> Result<DecodeFinished, Error>where
I: Input,
fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>,
) -> Result<DecodeFinished, Error>where
I: Input,
§fn skip<I>(input: &mut I) -> Result<(), Error>where
I: Input,
fn skip<I>(input: &mut I) -> Result<(), Error>where
I: Input,
§fn encoded_fixed_size() -> Option<usize>
fn encoded_fixed_size() -> Option<usize>
Source§impl<'de> Deserialize<'de> for Piece
impl<'de> Deserialize<'de> for Piece
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl Encode for Piece
impl Encode for Piece
Source§fn size_hint(&self) -> usize
fn size_hint(&self) -> usize
Source§fn encode_to<O: Output + ?Sized>(&self, output: &mut O)
fn encode_to<O: Output + ?Sized>(&self, output: &mut O)
Source§fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R
fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R
§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Source§impl From<&PieceArray> for Piece
impl From<&PieceArray> for Piece
Source§fn from(value: &PieceArray) -> Self
fn from(value: &PieceArray) -> Self
impl EncodeLike for Piece
impl Eq for Piece
impl StructuralPartialEq for Piece
Auto Trait Implementations§
impl !Freeze for Piece
impl RefUnwindSafe for Piece
impl Send for Piece
impl Sync for Piece
impl Unpin for Piece
impl UnwindSafe for Piece
Blanket Implementations§
§impl<T, U> AsByteSlice<T> for U
impl<T, U> AsByteSlice<T> for U
fn as_byte_slice(&self) -> &[u8] ⓘ
§impl<T, U> AsMutByteSlice<T> for U
impl<T, U> AsMutByteSlice<T> for U
fn as_mut_byte_slice(&mut self) -> &mut [u8] ⓘ
§impl<U> AsMutSliceOf for U
impl<U> AsMutSliceOf for U
fn as_mut_slice_of<T>(&mut self) -> Result<&mut [T], Error>where
T: FromByteSlice,
§impl<U> AsSliceOf for U
impl<U> AsSliceOf for U
fn as_slice_of<T>(&self) -> Result<&[T], Error>where
T: FromByteSlice,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> DecodeAll for Twhere
T: Decode,
impl<T> DecodeAll for Twhere
T: Decode,
§fn decode_all(input: &mut &[u8]) -> Result<T, Error>
fn decode_all(input: &mut &[u8]) -> Result<T, Error>
Self
and consume all of the given input data. Read more§impl<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere
T: Decode,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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> KeyedVec for Twhere
T: Codec,
impl<T> KeyedVec for Twhere
T: Codec,
§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> ToHex for T
impl<T> ToHex for T
Source§fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
self
into the result. Lower case
letters are used (e.g. f9b4ca
)Source§fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
self
into the result. Upper case
letters are used (e.g. F9B4CA
)