Skip to main content

BoxedUint

Struct BoxedUint 

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

A wrapper around crypto_bigint::BoxedUint that implements Serialize and Deserialize.

Methods from Deref<Target = BoxedUint>§

Source

pub fn adc(&self, rhs: &BoxedUint, carry: Limb) -> (BoxedUint, Limb)

Computes a + b + carry, returning the result along with the new carry.

Source

pub fn adc_assign(&mut self, rhs: impl AsRef<[Limb]>, carry: Limb) -> Limb

Computes a + b + carry in-place, returning the new carry.

Panics if rhs has a larger precision than self.

Source

pub fn wrapping_add(&self, rhs: &BoxedUint) -> BoxedUint

Perform wrapping addition, discarding overflow.

Source

pub fn add_mod(&self, rhs: &BoxedUint, p: &BoxedUint) -> BoxedUint

Computes self + rhs mod p.

Assumes self + rhs as unbounded integer is < 2p.

Source

pub fn double_mod(&self, p: &BoxedUint) -> BoxedUint

Computes self + self mod p.

Assumes self as unbounded integer is < p.

Source

pub fn bitand(&self, rhs: &BoxedUint) -> BoxedUint

Computes bitwise a & b.

Source

pub fn bitand_limb(&self, rhs: Limb) -> BoxedUint

Perform bitwise AND between self and the given Limb, performing the AND operation on every limb of self.

Source

pub fn wrapping_and(&self, rhs: &BoxedUint) -> BoxedUint

Perform wrapping bitwise AND.

There’s no way wrapping could ever happen. This function exists so that all operations are accounted for in the wrapping operations

Source

pub fn checked_and(&self, rhs: &BoxedUint) -> CtOption<BoxedUint>

Perform checked bitwise AND, returning a CtOption which is_some always

Source

pub fn not(&self) -> BoxedUint

Computes bitwise !a.

Source

pub fn bitor(&self, rhs: &BoxedUint) -> BoxedUint

Computes bitwise a & b.

Source

pub fn wrapping_or(&self, rhs: &BoxedUint) -> BoxedUint

Perform wrapping bitwise OR.

There’s no way wrapping could ever happen. This function exists so that all operations are accounted for in the wrapping operations

Source

pub fn checked_or(&self, rhs: &BoxedUint) -> CtOption<BoxedUint>

Perform checked bitwise OR, returning a CtOption which is_some always

Source

pub fn bitxor(&self, rhs: &BoxedUint) -> BoxedUint

Computes bitwise a ^ b.

Source

pub fn wrapping_xor(&self, rhs: &BoxedUint) -> BoxedUint

Perform wrapping bitwise `XOR``.

There’s no way wrapping could ever happen. This function exists so that all operations are accounted for in the wrapping operations

Source

pub fn checked_xor(&self, rhs: &BoxedUint) -> CtOption<BoxedUint>

Perform checked bitwise XOR, returning a CtOption which is_some always

Source

pub fn bit(&self, index: u32) -> Choice

Get the value of the bit at position index, as a truthy or falsy Choice. Returns the falsy value for indices out of range.

Source

pub fn bit_vartime(&self, index: u32) -> bool

Returns true if the bit at position index is set, false otherwise.

§Remarks

This operation is variable time with respect to index only.

Source

pub fn bits(&self) -> u32

Calculate the number of bits needed to represent this number, i.e. the index of the highest set bit.

Use BoxedUint::bits_precision to get the total capacity of this integer.

Source

pub fn bits_vartime(&self) -> u32

Calculate the number of bits needed to represent this number in variable-time with respect to self.

Source

pub fn leading_zeros(&self) -> u32

Calculate the number of leading zeros in the binary representation of this number.

Source

pub fn bits_precision(&self) -> u32

Get the precision of this BoxedUint in bits.

Source

pub fn trailing_zeros(&self) -> u32

Calculate the number of trailing zeros in the binary representation of this number.

Source

pub fn trailing_ones(&self) -> u32

Calculate the number of trailing ones in the binary representation of this number.

Source

pub fn trailing_zeros_vartime(&self) -> u32

Calculate the number of trailing zeros in the binary representation of this number in variable-time with respect to self.

Source

pub fn trailing_ones_vartime(&self) -> u32

Calculate the number of trailing ones in the binary representation of this number, variable time in self.

Source

pub fn cmp_vartime(&self, rhs: &BoxedUint) -> Ordering

Returns the Ordering between self and rhs in variable time.

Source

pub fn div_rem_limb_with_reciprocal( &self, reciprocal: &Reciprocal, ) -> (BoxedUint, Limb)

Computes self / rhs using a pre-made reciprocal, returns the quotient (q) and remainder (r).

Source

pub fn div_rem_limb(&self, rhs: NonZero<Limb>) -> (BoxedUint, Limb)

Computes self / rhs, returns the quotient (q) and remainder (r).

Source

pub fn rem_limb_with_reciprocal(&self, reciprocal: &Reciprocal) -> Limb

Computes self % rhs using a pre-made reciprocal.

Source

pub fn rem_limb(&self, rhs: NonZero<Limb>) -> Limb

Computes self % rhs.

Source

pub fn div_rem(&self, rhs: &NonZero<BoxedUint>) -> (BoxedUint, BoxedUint)

Computes self / rhs, returns the quotient, remainder.

Source

pub fn rem(&self, rhs: &NonZero<BoxedUint>) -> BoxedUint

Computes self % rhs, returns the remainder.

Source

pub fn div_rem_vartime( &self, rhs: &NonZero<BoxedUint>, ) -> (BoxedUint, BoxedUint)

Computes self / rhs, returns the quotient, remainder.

Variable-time with respect to rhs

Source

pub fn rem_vartime(&self, rhs: &NonZero<BoxedUint>) -> BoxedUint

Computes self % rhs, returns the remainder.

Variable-time with respect to rhs.

Source

pub fn wrapping_div(&self, rhs: &NonZero<BoxedUint>) -> BoxedUint

Wrapped division is just normal division i.e. self / rhs There’s no way wrapping could ever happen.

This function exists, so that all operations are accounted for in the wrapping operations.

Panics if rhs == 0.

Source

pub fn wrapping_div_vartime(&self, rhs: &NonZero<BoxedUint>) -> BoxedUint

Wrapped division is just normal division i.e. self / rhs

There’s no way wrapping could ever happen. This function exists, so that all operations are accounted for in the wrapping operations

Source

pub fn checked_div(&self, rhs: &BoxedUint) -> CtOption<BoxedUint>

Perform checked division, returning a CtOption which is_some only if the rhs != 0

Source

pub fn to_be_bytes(&self) -> Box<[u8]>

Serialize this BoxedUint as big-endian.

Source

pub fn to_le_bytes(&self) -> Box<[u8]>

Serialize this BoxedUint as little-endian.

Source

pub fn to_string_radix_vartime(&self, radix: u32) -> String

Format a BoxedUint as a string in a given base.

Panics if radix is not in the range from 2 to 36.

Source

pub fn inv_odd_mod(&self, modulus: &Odd<BoxedUint>) -> CtOption<BoxedUint>

Computes the multiplicative inverse of self mod modulus, where modulus is odd.

Source

pub fn inv_mod(&self, modulus: &BoxedUint) -> CtOption<BoxedUint>

Computes the multiplicaitve inverse of self mod modulus

self and modulus must have the same number of limbs, or the function will panic

TODO: maybe some better documentation is needed

Source

pub fn mul(&self, rhs: &BoxedUint) -> BoxedUint

Multiply self by rhs.

Returns a widened output with a limb count equal to the sums of the input limb counts.

Source

pub fn wrapping_mul(&self, rhs: &BoxedUint) -> BoxedUint

Perform wrapping multiplication, wrapping to the width of self.

Source

pub fn square(&self) -> BoxedUint

Multiply self by itself.

Source

pub fn mul_mod(&self, rhs: &BoxedUint, p: &BoxedUint) -> BoxedUint

Computes self * rhs mod p for odd p.

Panics if p is even.

Source

pub fn mul_mod_special(&self, rhs: &BoxedUint, c: Limb) -> BoxedUint

Computes self * rhs mod p for the special modulus p = MAX+1-c where c is small enough to fit in a single Limb.

For the modulus reduction, this function implements Algorithm 14.47 from the “Handbook of Applied Cryptography”, by A. Menezes, P. van Oorschot, and S. Vanstone, CRC Press, 1996.

Source

pub fn wrapping_neg(&self) -> BoxedUint

Perform wrapping negation.

Source

pub fn neg_mod(&self, p: &BoxedUint) -> BoxedUint

Computes -a mod p. Assumes self is in [0, p).

Source

pub fn neg_mod_special(&self, c: Limb) -> BoxedUint

Computes -a mod p for the special modulus p = MAX+1-c where c is small enough to fit in a single Limb.

Source

pub fn shl(&self, shift: u32) -> BoxedUint

Computes self << shift.

Panics if shift >= Self::BITS.

Source

pub fn shl_assign(&mut self, shift: u32)

Computes self <<= shift.

Panics if shift >= Self::BITS.

Source

pub fn overflowing_shl(&self, shift: u32) -> (BoxedUint, Choice)

Computes self << shift.

Returns a zero and a truthy Choice if shift >= self.bits_precision(), or the result and a falsy Choice otherwise.

Source

pub fn overflowing_shl_assign(&mut self, shift: u32) -> Choice

Computes self <<= shift.

Returns a truthy Choice if shift >= self.bits_precision() or a falsy Choice otherwise.

Source

pub fn wrapping_shl(&self, shift: u32) -> BoxedUint

Computes self << shift in a panic-free manner, masking off bits of shift which would cause the shift to exceed the type’s width.

Source

pub fn wrapping_shl_vartime(&self, shift: u32) -> BoxedUint

Computes self << shift in variable-time in a panic-free manner, masking off bits of shift which would cause the shift to exceed the type’s width.

Source

pub fn shl_vartime(&self, shift: u32) -> Option<BoxedUint>

Computes self << shift. Returns None if shift >= self.bits_precision().

NOTE: this operation is variable time with respect to shift ONLY.

When used with a fixed shift, this function is constant-time with respect to self.

Source

pub fn shr(&self, shift: u32) -> BoxedUint

Computes self >> shift.

Panics if shift >= Self::BITS.

Source

pub fn shr_assign(&mut self, shift: u32)

Computes self >>= shift.

Panics if shift >= Self::BITS.

Source

pub fn overflowing_shr(&self, shift: u32) -> (BoxedUint, Choice)

Computes self >> shift.

Returns a zero and a truthy Choice if shift >= self.bits_precision(), or the result and a falsy Choice otherwise.

Source

pub fn overflowing_shr_assign(&mut self, shift: u32) -> Choice

Computes self >>= shift.

Returns a truthy Choice if shift >= self.bits_precision() or a falsy Choice otherwise.

Source

pub fn wrapping_shr(&self, shift: u32) -> BoxedUint

Computes self >> shift in a panic-free manner, masking off bits of shift which would cause the shift to exceed the type’s width.

Source

pub fn wrapping_shr_vartime(&self, shift: u32) -> BoxedUint

Computes self >> shift in variable-time in a panic-free manner, masking off bits of shift which would cause the shift to exceed the type’s width.

Source

pub fn shr_vartime(&self, shift: u32) -> Option<BoxedUint>

Computes self >> shift. Returns None if shift >= self.bits_precision().

NOTE: this operation is variable time with respect to shift ONLY.

When used with a fixed shift, this function is constant-time with respect to self.

Source

pub fn sqrt(&self) -> BoxedUint

Computes √(self) in constant time.

Callers can check if self is a square by squaring the result

Source

pub fn sqrt_vartime(&self) -> BoxedUint

Computes √(self)

Callers can check if self is a square by squaring the result

Source

pub fn wrapping_sqrt(&self) -> BoxedUint

Wrapped sqrt is just normal √(self) There’s no way wrapping could ever happen. This function exists so that all operations are accounted for in the wrapping operations.

Source

pub fn wrapping_sqrt_vartime(&self) -> BoxedUint

Wrapped sqrt is just normal √(self) There’s no way wrapping could ever happen. This function exists so that all operations are accounted for in the wrapping operations.

Source

pub fn checked_sqrt(&self) -> CtOption<BoxedUint>

Perform checked sqrt, returning a CtOption which is_some only if the √(self)² == self

Source

pub fn checked_sqrt_vartime(&self) -> CtOption<BoxedUint>

Perform checked sqrt, returning a CtOption which is_some only if the √(self)² == self

Source

pub fn sbb(&self, rhs: &BoxedUint, borrow: Limb) -> (BoxedUint, Limb)

Computes a - (b + borrow), returning the result along with the new borrow.

Source

pub fn sbb_assign(&mut self, rhs: impl AsRef<[Limb]>, borrow: Limb) -> Limb

Computes a - (b + borrow) in-place, returning the new borrow.

Panics if rhs has a larger precision than self.

Source

pub fn wrapping_sub(&self, rhs: &BoxedUint) -> BoxedUint

Perform wrapping subtraction, discarding overflow.

Source

pub fn sub_mod(&self, rhs: &BoxedUint, p: &BoxedUint) -> BoxedUint

Computes self - rhs mod p.

Assumes self - rhs as unbounded signed integer is in [-p, p).

Source

pub fn sub_mod_special(&self, rhs: &BoxedUint, c: Limb) -> BoxedUint

Computes self - rhs mod p for the special modulus p = MAX+1-c where c is small enough to fit in a single Limb.

Assumes self - rhs as unbounded signed integer is in [-p, p).

Source

pub fn is_zero(&self) -> Choice

Is this BoxedUint equal to zero?

Source

pub fn is_nonzero(&self) -> Choice

Is this BoxedUint NOT equal to zero?

Source

pub fn is_one(&self) -> Choice

Is this BoxedUint equal to one?

Source

pub fn to_words(&self) -> Box<[u64]>

Create a boxed slice of Words (i.e. word-sized unsigned integers) from a BoxedUint.

Source

pub fn as_words(&self) -> &[u64]

Borrow the inner limbs as a slice of Words.

Source

pub fn as_words_mut(&mut self) -> &mut [u64]

Borrow the inner limbs as a mutable slice of Words.

Source

pub fn as_limbs(&self) -> &[Limb]

Borrow the limbs of this BoxedUint.

Source

pub fn as_limbs_mut(&mut self) -> &mut [Limb]

Borrow the limbs of this BoxedUint mutably.

Source

pub fn to_limbs(&self) -> Box<[Limb]>

Convert this BoxedUint into its inner limbs.

Source

pub fn nlimbs(&self) -> usize

Get the number of limbs in this BoxedUint.

Source

pub fn to_odd(&self) -> CtOption<Odd<BoxedUint>>

Convert into an Odd.

Source

pub fn widen(&self, at_least_bits_precision: u32) -> BoxedUint

Widen this type’s precision to the given number of bits.

Panics if at_least_bits_precision is smaller than the current precision.

Source

pub fn shorten(&self, at_least_bits_precision: u32) -> BoxedUint

Shortens this type’s precision to the given number of bits.

Panics if at_least_bits_precision is larger than the current precision.

Trait Implementations§

Source§

impl AsMut<BoxedUint> for BoxedUint

Source§

fn as_mut(&mut self) -> &mut BoxedUint

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

impl<__AsT: ?Sized> AsRef<__AsT> for BoxedUint
where BoxedUint: AsRef<__AsT>,

Source§

fn as_ref(&self) -> &__AsT

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

impl Clone for BoxedUint

Source§

fn clone(&self) -> BoxedUint

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for BoxedUint

Source§

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

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

impl Deref for BoxedUint

Source§

type Target = BoxedUint

The resulting type after dereferencing.
Source§

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

Dereferences the value.
Source§

impl DerefMut for BoxedUint

Source§

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

Mutably dereferences the value.
Source§

impl<'de> Deserialize<'de> for BoxedUint

Source§

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<__FromT0> From<__FromT0> for BoxedUint
where BoxedUint: From<__FromT0>,

Source§

fn from(value: __FromT0) -> Self

Converts to this type from the input type.
Source§

impl Hash for BoxedUint

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for BoxedUint

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for BoxedUint

Source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Eq for BoxedUint

Source§

impl StructuralPartialEq for BoxedUint

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<A, T> AsBits<T> for A
where A: AsRef<[T]>, T: BitStore,

Source§

fn as_bits<O>(&self) -> &BitSlice<T, O>
where O: BitOrder,

Views self as an immutable bit-slice region with the O ordering.
Source§

fn try_as_bits<O>(&self) -> Result<&BitSlice<T, O>, BitSpanError<T>>
where O: BitOrder,

Attempts to view self as an immutable bit-slice region with the O ordering. Read more
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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
Source§

impl<T> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

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

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
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> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,