pub struct PieceIndex(/* private fields */);Expand description
Piece index in consensus
Implementations§
Source§impl PieceIndex
 
impl PieceIndex
Sourcepub const ZERO: PieceIndex
 
pub const ZERO: PieceIndex
Piece index 0.
Sourcepub const ONE: PieceIndex
 
pub const ONE: PieceIndex
Piece index 1.
Sourcepub const fn from_bytes(bytes: [u8; 8]) -> Self
 
pub const fn from_bytes(bytes: [u8; 8]) -> Self
Create piece index from bytes.
Sourcepub const fn segment_index(&self) -> SegmentIndex
 
pub const fn segment_index(&self) -> SegmentIndex
Segment index piece index corresponds to
Sourcepub const fn source_position(&self) -> u32
 
pub const fn source_position(&self) -> u32
Position of a source piece in the source pieces for a segment. Panics if the piece is not a source piece.
Sourcepub const fn from_source_position(
    source_position: u32,
    segment_index: SegmentIndex,
) -> PieceIndex
 
pub const fn from_source_position( source_position: u32, segment_index: SegmentIndex, ) -> PieceIndex
Returns the piece index for a source position and segment index. Overflows to the next segment if the position is greater than the last source position.
Sourcepub const fn next_source_index(&self) -> PieceIndex
 
pub const fn next_source_index(&self) -> PieceIndex
Returns the next source piece index. Panics if the piece is not a source piece.
Sourcepub const fn prev_source_index(&self) -> Option<PieceIndex>
 
pub const fn prev_source_index(&self) -> Option<PieceIndex>
Returns the previous source piece index, if there is one. Panics if the piece is not a source piece.
Trait Implementations§
Source§impl Add for PieceIndex
 
impl Add for PieceIndex
Source§type Output = PieceIndex
 
type Output = PieceIndex
The resulting type after applying the 
+ operator.Source§fn add(self, rhs: PieceIndex) -> PieceIndex
 
fn add(self, rhs: PieceIndex) -> PieceIndex
Performs the 
+ operation. Read moreSource§impl AddAssign for PieceIndex
 
impl AddAssign for PieceIndex
Source§fn add_assign(&mut self, rhs: PieceIndex)
 
fn add_assign(&mut self, rhs: PieceIndex)
Performs the 
+= operation. Read moreSource§impl Clone for PieceIndex
 
impl Clone for PieceIndex
Source§fn clone(&self) -> PieceIndex
 
fn clone(&self) -> PieceIndex
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from 
source. Read moreSource§impl Debug for PieceIndex
 
impl Debug for PieceIndex
Source§impl Decode for PieceIndex
 
impl Decode for PieceIndex
Source§fn decode<__CodecInputEdqy: Input>(
    __codec_input_edqy: &mut __CodecInputEdqy,
) -> Result<Self, Error>
 
fn decode<__CodecInputEdqy: Input>( __codec_input_edqy: &mut __CodecInputEdqy, ) -> Result<Self, Error>
Attempt to deserialise the value from input.
Source§fn decode_into<__CodecInputEdqy: Input>(
    __codec_input_edqy: &mut __CodecInputEdqy,
    dst_: &mut MaybeUninit<Self>,
) -> Result<DecodeFinished, Error>
 
fn decode_into<__CodecInputEdqy: Input>( __codec_input_edqy: &mut __CodecInputEdqy, dst_: &mut MaybeUninit<Self>, ) -> Result<DecodeFinished, Error>
Attempt to deserialize the value from input into a pre-allocated piece of memory. Read more
§fn skip<I>(input: &mut I) -> Result<(), Error>where
    I: Input,
 
fn skip<I>(input: &mut I) -> Result<(), Error>where
    I: Input,
Attempt to skip the encoded value from input. Read more
§fn encoded_fixed_size() -> Option<usize>
 
fn encoded_fixed_size() -> Option<usize>
Returns the fixed encoded size of the type. Read more
Source§impl Default for PieceIndex
 
impl Default for PieceIndex
Source§fn default() -> PieceIndex
 
fn default() -> PieceIndex
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for PieceIndex
 
impl<'de> Deserialize<'de> for PieceIndex
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for PieceIndex
 
impl Display for PieceIndex
Source§impl<__RhsT> Div<__RhsT> for PieceIndex
 
impl<__RhsT> Div<__RhsT> for PieceIndex
Source§type Output = PieceIndex
 
type Output = PieceIndex
The resulting type after applying the 
/ operator.Source§fn div(self, rhs: __RhsT) -> PieceIndex
 
fn div(self, rhs: __RhsT) -> PieceIndex
Performs the 
/ operation. Read moreSource§impl<__RhsT> DivAssign<__RhsT> for PieceIndex
 
impl<__RhsT> DivAssign<__RhsT> for PieceIndex
Source§fn div_assign(&mut self, rhs: __RhsT)
 
fn div_assign(&mut self, rhs: __RhsT)
Performs the 
/= operation. Read moreSource§impl Encode for PieceIndex
 
impl Encode for PieceIndex
Source§fn size_hint(&self) -> usize
 
fn size_hint(&self) -> usize
If possible give a hint of expected size of the encoding. Read more
Source§fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
    &self,
    __codec_dest_edqy: &mut __CodecOutputEdqy,
)
 
fn encode_to<__CodecOutputEdqy: Output + ?Sized>( &self, __codec_dest_edqy: &mut __CodecOutputEdqy, )
Convert self to a slice and append it to the destination.
Source§fn using_encoded<__CodecOutputReturn, __CodecUsingEncodedCallback: FnOnce(&[u8]) -> __CodecOutputReturn>(
    &self,
    f: __CodecUsingEncodedCallback,
) -> __CodecOutputReturn
 
fn using_encoded<__CodecOutputReturn, __CodecUsingEncodedCallback: FnOnce(&[u8]) -> __CodecOutputReturn>( &self, f: __CodecUsingEncodedCallback, ) -> __CodecOutputReturn
Convert self to a slice and then invoke the given closure with it.
§fn encoded_size(&self) -> usize
 
fn encoded_size(&self) -> usize
Calculates the encoded size. Read more
Source§impl From<PieceIndex> for u64
 
impl From<PieceIndex> for u64
Source§fn from(original: PieceIndex) -> Self
 
fn from(original: PieceIndex) -> Self
Converts to this type from the input type.
Source§impl From<u64> for PieceIndex
 
impl From<u64> for PieceIndex
Source§impl Hash for PieceIndex
 
impl Hash for PieceIndex
Source§impl MaxEncodedLen for PieceIndex
 
impl MaxEncodedLen for PieceIndex
Source§fn max_encoded_len() -> usize
 
fn max_encoded_len() -> usize
Upper bound, in bytes, of the maximum encoded size of this item.
Source§impl<__RhsT> Mul<__RhsT> for PieceIndex
 
impl<__RhsT> Mul<__RhsT> for PieceIndex
Source§type Output = PieceIndex
 
type Output = PieceIndex
The resulting type after applying the 
* operator.Source§fn mul(self, rhs: __RhsT) -> PieceIndex
 
fn mul(self, rhs: __RhsT) -> PieceIndex
Performs the 
* operation. Read moreSource§impl<__RhsT> MulAssign<__RhsT> for PieceIndex
 
impl<__RhsT> MulAssign<__RhsT> for PieceIndex
Source§fn mul_assign(&mut self, rhs: __RhsT)
 
fn mul_assign(&mut self, rhs: __RhsT)
Performs the 
*= operation. Read moreSource§impl Ord for PieceIndex
 
impl Ord for PieceIndex
Source§fn cmp(&self, other: &PieceIndex) -> Ordering
 
fn cmp(&self, other: &PieceIndex) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
    Self: Sized,
 
fn max(self, other: Self) -> Selfwhere
    Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for PieceIndex
 
impl PartialEq for PieceIndex
Source§impl PartialOrd for PieceIndex
 
impl PartialOrd for PieceIndex
Source§impl Serialize for PieceIndex
 
impl Serialize for PieceIndex
Source§impl Step for PieceIndex
 
impl Step for PieceIndex
Source§fn steps_between(start: &Self, end: &Self) -> (usize, Option<usize>)
 
fn steps_between(start: &Self, end: &Self) -> (usize, Option<usize>)
🔬This is a nightly-only experimental API. (
step_trait)Returns the bounds on the number of successor steps required to get from 
start to end
like Iterator::size_hint(). Read moreSource§fn forward_checked(start: Self, count: usize) -> Option<Self>
 
fn forward_checked(start: Self, count: usize) -> Option<Self>
🔬This is a nightly-only experimental API. (
step_trait)Source§fn backward_checked(start: Self, count: usize) -> Option<Self>
 
fn backward_checked(start: Self, count: usize) -> Option<Self>
🔬This is a nightly-only experimental API. (
step_trait)Source§fn forward(start: Self, count: usize) -> Self
 
fn forward(start: Self, count: usize) -> Self
🔬This is a nightly-only experimental API. (
step_trait)Source§unsafe fn forward_unchecked(start: Self, count: usize) -> Self
 
unsafe fn forward_unchecked(start: Self, count: usize) -> Self
🔬This is a nightly-only experimental API. (
step_trait)Source§fn backward(start: Self, count: usize) -> Self
 
fn backward(start: Self, count: usize) -> Self
🔬This is a nightly-only experimental API. (
step_trait)Source§unsafe fn backward_unchecked(start: Self, count: usize) -> Self
 
unsafe fn backward_unchecked(start: Self, count: usize) -> Self
🔬This is a nightly-only experimental API. (
step_trait)Source§impl Sub for PieceIndex
 
impl Sub for PieceIndex
Source§type Output = PieceIndex
 
type Output = PieceIndex
The resulting type after applying the 
- operator.Source§fn sub(self, rhs: PieceIndex) -> PieceIndex
 
fn sub(self, rhs: PieceIndex) -> PieceIndex
Performs the 
- operation. Read moreSource§impl SubAssign for PieceIndex
 
impl SubAssign for PieceIndex
Source§fn sub_assign(&mut self, rhs: PieceIndex)
 
fn sub_assign(&mut self, rhs: PieceIndex)
Performs the 
-= operation. Read moreSource§impl TypeInfo for PieceIndex
 
impl TypeInfo for PieceIndex
impl Copy for PieceIndex
impl EncodeLike for PieceIndex
impl Eq for PieceIndex
impl StructuralPartialEq for PieceIndex
Auto Trait Implementations§
impl Freeze for PieceIndex
impl RefUnwindSafe for PieceIndex
impl Send for PieceIndex
impl Sync for PieceIndex
impl Unpin for PieceIndex
impl UnwindSafe for PieceIndex
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
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>
Decode 
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>
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 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>
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