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
Available on crate feature scale-codec only.
impl Decode for Piece
scale-codec only.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
Available on crate feature serde only.
impl<'de> Deserialize<'de> for Piece
serde only.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
Available on crate feature scale-codec only.
impl Encode for Piece
scale-codec only.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
scale-codec only.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,
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)