pub struct SegmentIndex(/* private fields */);Expand description
Segment index
Implementations§
Source§impl SegmentIndex
impl SegmentIndex
Sourcepub const fn first_piece_index(&self) -> PieceIndex
pub const fn first_piece_index(&self) -> PieceIndex
Get the first piece index in this segment
Sourcepub const fn last_piece_index(&self) -> PieceIndex
pub const fn last_piece_index(&self) -> PieceIndex
Get the last piece index in this segment
Sourcepub fn segment_piece_indexes(&self) -> [PieceIndex; 256]
pub fn segment_piece_indexes(&self) -> [PieceIndex; 256]
List of piece indexes that belong to this segment
Sourcepub fn checked_sub(self, rhs: Self) -> Option<Self>
pub fn checked_sub(self, rhs: Self) -> Option<Self>
Checked integer subtraction. Computes self - rhs, returning None if underflow occurred
Sourcepub const fn saturating_sub(self, rhs: Self) -> Self
pub const fn saturating_sub(self, rhs: Self) -> Self
Saturating integer subtraction. Computes self - rhs, returning zero if underflow
occurred
Trait Implementations§
Source§impl Add for SegmentIndex
impl Add for SegmentIndex
Source§impl AddAssign for SegmentIndex
impl AddAssign for SegmentIndex
Source§fn add_assign(&mut self, __rhs: Self)
fn add_assign(&mut self, __rhs: Self)
Performs the
+= operation. Read moreimpl AnyBitPatternMarker for SegmentIndexwhere
for<'__ab_io_type> u64: AnyBitPatternMarker,
Source§impl Clone for SegmentIndex
impl Clone for SegmentIndex
impl Copy for SegmentIndex
Source§impl Debug for SegmentIndex
impl Debug for SegmentIndex
Source§impl Decode for SegmentIndex
impl Decode for SegmentIndex
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.
§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,
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 SegmentIndex
impl Default for SegmentIndex
Source§impl<'de> Deserialize<'de> for SegmentIndex
impl<'de> Deserialize<'de> for SegmentIndex
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 SegmentIndex
impl Display for SegmentIndex
Source§impl<__derive_more_Rhs> Div<__derive_more_Rhs> for SegmentIndex
impl<__derive_more_Rhs> Div<__derive_more_Rhs> for SegmentIndex
Source§impl<__derive_more_Rhs> DivAssign<__derive_more_Rhs> for SegmentIndex
impl<__derive_more_Rhs> DivAssign<__derive_more_Rhs> for SegmentIndex
Source§fn div_assign(&mut self, __rhs: __derive_more_Rhs)
fn div_assign(&mut self, __rhs: __derive_more_Rhs)
Performs the
/= operation. Read moreSource§impl Encode for SegmentIndex
impl Encode for SegmentIndex
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
impl EncodeLike for SegmentIndex
impl Eq for SegmentIndex
Source§impl From<HistorySize> for SegmentIndex
impl From<HistorySize> for SegmentIndex
Source§fn from(value: HistorySize) -> Self
fn from(value: HistorySize) -> Self
Converts to this type from the input type.
Source§impl From<SegmentIndex> for u64
impl From<SegmentIndex> for u64
Source§fn from(value: SegmentIndex) -> Self
fn from(value: SegmentIndex) -> Self
Converts to this type from the input type.
Source§impl From<SegmentIndex> for HistorySize
impl From<SegmentIndex> for HistorySize
Source§fn from(value: SegmentIndex) -> Self
fn from(value: SegmentIndex) -> Self
Converts to this type from the input type.
Source§impl From<u64> for SegmentIndex
impl From<u64> for SegmentIndex
Source§impl Hash for SegmentIndex
impl Hash for SegmentIndex
Source§impl MaxEncodedLen for SegmentIndex
impl MaxEncodedLen for SegmentIndex
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<__derive_more_Rhs> Mul<__derive_more_Rhs> for SegmentIndex
impl<__derive_more_Rhs> Mul<__derive_more_Rhs> for SegmentIndex
Source§impl<__derive_more_Rhs> MulAssign<__derive_more_Rhs> for SegmentIndex
impl<__derive_more_Rhs> MulAssign<__derive_more_Rhs> for SegmentIndex
Source§fn mul_assign(&mut self, __rhs: __derive_more_Rhs)
fn mul_assign(&mut self, __rhs: __derive_more_Rhs)
Performs the
*= operation. Read moreSource§impl Ord for SegmentIndex
impl Ord for SegmentIndex
1.21.0 (const: unstable) · 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
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the minimum of two values. Read more
Source§impl PartialEq for SegmentIndex
impl PartialEq for SegmentIndex
Source§impl PartialOrd for SegmentIndex
impl PartialOrd for SegmentIndex
Source§impl Serialize for SegmentIndex
impl Serialize for SegmentIndex
Source§impl Step for SegmentIndex
impl Step for SegmentIndex
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 forward_overflowing(start: Self, count: usize) -> (Self, bool)
fn forward_overflowing(start: Self, count: usize) -> (Self, bool)
🔬This is a nightly-only experimental API. (
step_trait)Returns the value that would be obtained by taking the successor
of
self count times along with a boolean tracking whether overflow
occurred. Read moreSource§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 backward_overflowing(start: Self, count: usize) -> (Self, bool)
fn backward_overflowing(start: Self, count: usize) -> (Self, bool)
🔬This is a nightly-only experimental API. (
step_trait)Returns the value that would be obtained by taking the successor
of
self count times along with a boolean tracking whether overflow
occurred. Read moreSource§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)impl StructuralPartialEq for SegmentIndex
Source§impl Sub for SegmentIndex
impl Sub for SegmentIndex
Source§impl SubAssign for SegmentIndex
impl SubAssign for SegmentIndex
Source§fn sub_assign(&mut self, __rhs: Self)
fn sub_assign(&mut self, __rhs: Self)
Performs the
-= operation. Read moreSource§impl TrivialType for SegmentIndexwhere
u64: TrivialType,
impl TrivialType for SegmentIndexwhere
u64: TrivialType,
Source§const METADATA: &[u8]
const METADATA: &[u8]
Data structure metadata in binary form, describing shape and types of the contents, see
IoTypeMetadataKind for encoding details.const SIZE: u32
Source§final fn try_from_bytes(bytes: &[u8]) -> Option<(&Self, &[u8])>
final fn try_from_bytes(bytes: &[u8]) -> Option<(&Self, &[u8])>
Parse the beginning of aligned
bytes, returns the value and the remaining bytes. Read moreSource§final fn try_from_bytes_exact(bytes: &[u8]) -> Option<&Self>
final fn try_from_bytes_exact(bytes: &[u8]) -> Option<&Self>
Like
Self::try_from_bytes(), but returns None if there are more bytes than the valueSource§final fn try_from_bytes_mut(bytes: &mut [u8]) -> Option<(&mut Self, &mut [u8])>
final fn try_from_bytes_mut(bytes: &mut [u8]) -> Option<(&mut Self, &mut [u8])>
Like
Self::try_from_bytes(), but returns an exclusive reference. Read moreSource§final fn try_from_bytes_mut_exact(bytes: &mut [u8]) -> Option<&mut Self>
final fn try_from_bytes_mut_exact(bytes: &mut [u8]) -> Option<&mut Self>
Like
Self::try_from_bytes_mut(), but returns None if there are more bytes than the
valueSource§final fn from_bytes(bytes: &[u8]) -> Option<(&Self, &[u8])>where
Self: AnyBitPattern,
final fn from_bytes(bytes: &[u8]) -> Option<(&Self, &[u8])>where
Self: AnyBitPattern,
Create a reference to a value at the beginning of aligned
bytes, returns the value and
the remaining bytes. Read moreSource§final fn from_bytes_exact(bytes: &[u8]) -> Option<&Self>where
Self: AnyBitPattern,
final fn from_bytes_exact(bytes: &[u8]) -> Option<&Self>where
Self: AnyBitPattern,
Like
Self::from_bytes(), but returns None if there are more bytes than the valueSource§final unsafe fn from_bytes_unchecked(bytes: &[u8]) -> &Self
final unsafe fn from_bytes_unchecked(bytes: &[u8]) -> &Self
Similar to
Self::from_bytes(), but for any type and without any checks Read moreSource§final fn from_bytes_mut(bytes: &mut [u8]) -> Option<(&mut Self, &mut [u8])>where
Self: AnyBitPattern,
final fn from_bytes_mut(bytes: &mut [u8]) -> Option<(&mut Self, &mut [u8])>where
Self: AnyBitPattern,
Like
Self::from_bytes(), but returns an exclusive referenceSource§final fn from_bytes_mut_exact(bytes: &mut [u8]) -> Option<&mut Self>where
Self: AnyBitPattern,
final fn from_bytes_mut_exact(bytes: &mut [u8]) -> Option<&mut Self>where
Self: AnyBitPattern,
Like
Self::from_bytes_mut(), but returns None if there are more bytes than the valueSource§final unsafe fn from_bytes_mut_unchecked(bytes: &mut [u8]) -> &mut Self
final unsafe fn from_bytes_mut_unchecked(bytes: &mut [u8]) -> &mut Self
Similar to
Self::from_bytes_mut(), but for any type and without any checks Read moreSource§final fn slice_from_bytes(
bytes: &[u8],
count: usize,
) -> Option<(&[Self], &[u8])>where
Self: AnyBitPattern,
final fn slice_from_bytes(
bytes: &[u8],
count: usize,
) -> Option<(&[Self], &[u8])>where
Self: AnyBitPattern,
Create a slice of
count values at the beginning of aligned bytes, returns the values and
the remaining bytes. Read moreSource§final fn slice_from_bytes_mut(
bytes: &mut [u8],
count: usize,
) -> Option<(&mut [Self], &mut [u8])>where
Self: AnyBitPattern,
final fn slice_from_bytes_mut(
bytes: &mut [u8],
count: usize,
) -> Option<(&mut [Self], &mut [u8])>where
Self: AnyBitPattern,
Like
Self::slice_from_bytes(), but returns an exclusive referenceSource§final fn as_bytes(&self) -> &[u8; ab_io_type::trivial_type::SIZE_OF::<Self>]
final fn as_bytes(&self) -> &[u8; ab_io_type::trivial_type::SIZE_OF::<Self>]
Access the underlying byte representation of a data structure
Source§final fn slice_as_bytes(values: &[Self]) -> &[u8] ⓘ
final fn slice_as_bytes(values: &[Self]) -> &[u8] ⓘ
Access the underlying byte representation of a slice of values
Source§final fn as_bytes_mut(
&mut self,
) -> &mut [u8; ab_io_type::trivial_type::SIZE_OF::<Self>]where
Self: AnyBitPattern,
final fn as_bytes_mut(
&mut self,
) -> &mut [u8; ab_io_type::trivial_type::SIZE_OF::<Self>]where
Self: AnyBitPattern,
Access the underlying mutable byte representation of a data structure
Source§final unsafe fn as_bytes_mut_unchecked(
&mut self,
) -> &mut [u8; ab_io_type::trivial_type::SIZE_OF::<Self>]
final unsafe fn as_bytes_mut_unchecked( &mut self, ) -> &mut [u8; ab_io_type::trivial_type::SIZE_OF::<Self>]
Similar to
Self::as_bytes_mut(), but for any type. Read moreAuto Trait Implementations§
impl Forget for SegmentIndex
impl Freeze for SegmentIndex
impl RefUnwindSafe for SegmentIndex
impl Send for SegmentIndex
impl Sync for SegmentIndex
impl Unpin for SegmentIndex
impl UnsafeUnpin for SegmentIndex
impl UnwindSafe for SegmentIndex
Blanket Implementations§
impl<T> AnyBitPattern for Twhere
T: TrivialType + AnyBitPatternMarker,
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<S> Codec for Swhere
S: Decode + Encode,
§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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> EncodeLike<&&T> for Twhere
T: Encode,
impl<T> EncodeLike<&T> for Twhere
T: Encode,
impl<T> EncodeLike<&mut T> for Twhere
T: Encode,
impl<T> EncodeLike<Arc<T>> for Twhere
T: Encode,
impl<T> EncodeLike<Box<T>> for Twhere
T: Encode,
impl<T> EncodeLike<Cow<'_, T>> for Twhere
T: ToOwned + Encode,
impl<T> EncodeLike<Rc<T>> for Twhere
T: Encode,
impl<S> FullCodec for Swhere
S: Decode + FullEncode,
impl<S> FullEncode for Swhere
S: Encode + EncodeLike,
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 moreSource§impl<T> IoType for Twhere
T: TrivialType,
impl<T> IoType for Twhere
T: TrivialType,
Source§const METADATA: &'static [u8] = T::METADATA
const METADATA: &'static [u8] = T::METADATA
Data structure metadata in binary form, describing shape and types of the contents, see
IoTypeMetadataKind for encoding detailsSource§type PointerType = T
type PointerType = T
Pointer with a trivial type that this
IoType representsSource§type WithLifetime<'b> = T
type WithLifetime<'b> = T
The same type, viewing memory borrowed for
'b. Read moreSource§type Reborrowed<'b> = &'b mut T
type Reborrowed<'b> = &'b mut T
Source§unsafe fn from_ptr<'a>(
ptr: &'a NonNull<<T as IoType>::PointerType>,
size: &'a u32,
capacity: u32,
) -> impl Deref<Target = <T as IoType>::WithLifetime<'a>> + 'a
unsafe fn from_ptr<'a>( ptr: &'a NonNull<<T as IoType>::PointerType>, size: &'a u32, capacity: u32, ) -> impl Deref<Target = <T as IoType>::WithLifetime<'a>> + 'a
Create a reference to a type, which is represented by provided memory. Read more
Source§unsafe fn from_mut_ptr<'a>(
ptr: &'a mut NonNull<<T as IoType>::PointerType>,
_size: &'a mut u32,
capacity: u32,
) -> impl DerefMut + 'a
unsafe fn from_mut_ptr<'a>( ptr: &'a mut NonNull<<T as IoType>::PointerType>, _size: &'a mut u32, capacity: u32, ) -> impl DerefMut + 'a
Create a mutable reference to a type, which is represented by provided memory. Read more
Source§unsafe fn try_from_ptr<'a>(
ptr: &'a NonNull<<T as IoType>::PointerType>,
size: &'a u32,
capacity: u32,
) -> Option<impl Deref<Target = <T as IoType>::WithLifetime<'a>> + 'a>
unsafe fn try_from_ptr<'a>( ptr: &'a NonNull<<T as IoType>::PointerType>, size: &'a u32, capacity: u32, ) -> Option<impl Deref<Target = <T as IoType>::WithLifetime<'a>> + 'a>
Create a reference to a type, which is represented by provided memory, if the memory holds a
valid value. Read more
Source§unsafe fn try_from_mut_ptr<'a>(
ptr: &'a mut NonNull<<T as IoType>::PointerType>,
size: &'a mut u32,
capacity: u32,
) -> Option<impl DerefMut + 'a>
unsafe fn try_from_mut_ptr<'a>( ptr: &'a mut NonNull<<T as IoType>::PointerType>, size: &'a mut u32, capacity: u32, ) -> Option<impl DerefMut + 'a>
Like
Self::try_from_ptr(), but returns an exclusive reference. Read moreSource§fn as_ptr(&self) -> NonNull<<T as IoType>::PointerType>
fn as_ptr(&self) -> NonNull<<T as IoType>::PointerType>
Get a raw pointer to the underlying data. Read more
Source§fn as_mut_ptr(&mut self) -> NonNull<<T as IoType>::PointerType>
fn as_mut_ptr(&mut self) -> NonNull<<T as IoType>::PointerType>
Get an exclusive raw pointer to the underlying data. Read more
Source§fn reborrow_mut(&mut self) -> <T as IoType>::Reborrowed<'_>
fn reborrow_mut(&mut self) -> <T as IoType>::Reborrowed<'_>
Exclusive access to this value for the duration of the borrow. Read more
§impl<T> KeyedVec for Twhere
T: Codec,
impl<T> KeyedVec for Twhere
T: Codec,
§fn to_keyed_vec(&self, prepend_key: &[u8]) -> Vec<u8> ⓘ
fn to_keyed_vec(&self, prepend_key: &[u8]) -> Vec<u8> ⓘ
Return an encoding of
Self prepended by given slice.§impl<H> NewMerkleHasherForTreeSize for Hwhere
H: Default,
impl<H> NewMerkleHasherForTreeSize for Hwhere
H: Default,
§fn new_for_tree_size(_num_leaves: u64) -> H
fn new_for_tree_size(_num_leaves: u64) -> H
Create a hasher for a tree with
num_leaves leaves