Skip to main content

PairwiseAuthKey

Struct PairwiseAuthKey 

Source
#[repr(C)]
pub struct PairwiseAuthKey<A, B> { pub alpha: GlobalKey<A>, pub beta: B, }
Expand description

Generic authenticated key: a global key alpha: A and a local key beta: B, satisfying MAC(x) = α · x + β.

This is the base type for both:

  • [FieldShareKey<F>] — single-value authenticated key
  • [FieldShareKeys<F,M>] — batched authenticated key (M values, shared α)

Fields§

§alpha: GlobalKey<A>§beta: B

Implementations§

Source§

impl<A, B> PairwiseAuthKey<A, B>

Source

pub fn new(alpha: Arc<A>, beta: B) -> Self

Create a new PairwiseAuthKey with the given global key alpha and local key beta.

Source

pub fn get_beta(&self) -> &B

Return a reference to the local key beta.

Source

pub fn get_alpha(&self) -> &A

Return a reference to the global key alpha.

Source

pub fn alpha(&self) -> Arc<A>

Return the value of the global key alpha.

Source§

impl<A: Clone, B: Copy, M: Positive> PairwiseAuthKey<A, HeapArray<B, M>>

Generic split and merge operations on any batched key PairwiseAuthKey<A, HeapArray<B, M>>. Covers both FieldShareKeys<F, M> and CurveKeys<C, M>.

Source

pub fn split<M1, M2>( self, ) -> (PairwiseAuthKey<A, HeapArray<B, M1>>, PairwiseAuthKey<A, HeapArray<B, M2>>)
where M1: Positive, M2: Positive + Add<M1, Output = M>,

Split a batched key into two smaller batched keys with the same global key alpha and disjoint local keys beta (first M1 values in the first key, next M2 values in the second key).

Source

pub fn split_last_pos<M1>( self, ) -> (PairwiseAuthKey<A, HeapArray<B, M1>>, PairwiseAuthKey<A, B>)
where M1: Positive + Add<B1, Output = M>,

Source

pub fn split_halves<MDiv2>( self, ) -> (PairwiseAuthKey<A, HeapArray<B, MDiv2>>, PairwiseAuthKey<A, HeapArray<B, MDiv2>>)
where MDiv2: Positive + Mul<U2, Output = M>,

Split a batched key into two smaller batched keys with the same global key alpha and disjoint local keys beta (first M/2 values in the first key, next M/2 values in the second key).

Source

pub fn merge_halves( this: Self, other: Self, ) -> PairwiseAuthKey<A, HeapArray<B, Prod<M, U2>>>
where M: Positive + Mul<U2, Output: Positive>, A: PartialEq,

Merge two batched keys with the same global key alpha and disjoint local keys beta (first M/2 values in the first key, next M/2 values in the second key) into a single batched key with M values in the local key.

Source

pub fn split3<M1, M2, M3>( self, ) -> (PairwiseAuthKey<A, HeapArray<B, M1>>, PairwiseAuthKey<A, HeapArray<B, M2>>, PairwiseAuthKey<A, HeapArray<B, M3>>)
where M1: Positive, M2: Positive + Add<M1>, M3: Positive + Add<Sum<M2, M1>, Output = M>,

Split a batched key into three smaller batched keys with the same global key alpha and disjoint local keys beta (first M1 values in the first key, next M2 values in the second key, last M3 values in the third key).

Source

pub fn split_thirds<MDiv3>( self, ) -> (PairwiseAuthKey<A, HeapArray<B, MDiv3>>, PairwiseAuthKey<A, HeapArray<B, MDiv3>>, PairwiseAuthKey<A, HeapArray<B, MDiv3>>)
where MDiv3: Positive + Mul<U3, Output = M>,

Split a batched key into three smaller batched keys with the same global key alpha and disjoint local keys beta (first M/3 values in the first key, next M/3 values in the second key, last M/3 values in the third key).

Source

pub fn merge_thirds( first: Self, second: Self, third: Self, ) -> PairwiseAuthKey<A, HeapArray<B, Prod<M, U3>>>
where M: Positive + Mul<U3, Output: Positive>, A: PartialEq,

Merge three batched keys with the same global key alpha and disjoint local keys beta (first M/3 values in the first key, next M/3 values in the second key, last M/3 values in the third key) into a single batched key with M values in the local key.

Trait Implementations§

Source§

impl<A: PartialEq, B> Add for PairwiseAuthKey<A, B>
where for<'a> B: Add<&'a B, Output = B>,

Source§

type Output = PairwiseAuthKey<A, B>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: PairwiseAuthKey<A, B>) -> Self::Output

Performs the + operation. Read more
Source§

impl<A: PartialEq, B> Add<&PairwiseAuthKey<A, B>> for PairwiseAuthKey<A, B>
where for<'a> B: Add<&'a B, Output = B>,

Source§

type Output = PairwiseAuthKey<A, B>

The resulting type after applying the + operator.
Source§

fn add(self, other: &PairwiseAuthKey<A, B>) -> Self::Output

Performs the + operation. Read more
Source§

impl<A: PartialEq, B> Add<&PairwiseAuthKey<A, B>> for &PairwiseAuthKey<A, B>
where for<'a> B: Add<&'a B, Output = B>, PairwiseAuthKey<A, B>: Clone,

Source§

type Output = PairwiseAuthKey<A, B>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &PairwiseAuthKey<A, B>) -> Self::Output

Performs the + operation. Read more
Source§

impl<A: PartialEq, B> Add<PairwiseAuthKey<A, B>> for &PairwiseAuthKey<A, B>
where for<'a> B: Add<&'a B, Output = B>, PairwiseAuthKey<A, B>: Clone,

Source§

type Output = PairwiseAuthKey<A, B>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: PairwiseAuthKey<A, B>) -> Self::Output

Performs the + operation. Read more
Source§

impl<'a, A: PartialEq, B> AddAssign for PairwiseAuthKey<A, B>
where for<'b> B: AddAssign<&'b B>,

Source§

fn add_assign(&mut self, rhs: PairwiseAuthKey<A, B>)

Performs the += operation. Read more
Source§

impl<'a, A: PartialEq, B> AddAssign<&'a PairwiseAuthKey<A, B>> for PairwiseAuthKey<A, B>
where for<'b> B: AddAssign<&'b B>,

Source§

fn add_assign(&mut self, other: &'a PairwiseAuthKey<A, B>)

Performs the += operation. Read more
Source§

impl<A: Clone, B: Clone> Clone for PairwiseAuthKey<A, B>

Source§

fn clone(&self) -> PairwiseAuthKey<A, B>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<A: ConditionallySelectable, B: ConditionallySelectable> ConditionallySelectable for PairwiseAuthKey<A, B>

Source§

fn conditional_select(a: &Self, b: &Self, choice: Choice) -> Self

Select a or b according to choice. Read more
Source§

impl<A: ConstantTimeEq, B: ConstantTimeEq> ConstantTimeEq for PairwiseAuthKey<A, B>

Source§

fn ct_eq(&self, other: &Self) -> Choice

Determine if two items are equal. Read more
Source§

fn ct_ne(&self, other: &Self) -> Choice

Determine if two items are NOT equal. Read more
Source§

impl<A: Debug, B: Debug> Debug for PairwiseAuthKey<A, B>

Source§

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

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

impl<A: Default, B: Default> Default for PairwiseAuthKey<A, B>

Source§

fn default() -> PairwiseAuthKey<A, B>

Returns the “default value” for a type. Read more
Source§

impl<'de, A, B> Deserialize<'de> for PairwiseAuthKey<A, B>
where A: Deserialize<'de>, B: Deserialize<'de>,

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<A: Eq, B: Eq> Eq for PairwiseAuthKey<A, B>

Source§

impl<A, T> From<PairwiseAuthKey<A, T>> for PairwiseAuthKey<A, HeapArray<T, U1>>

Convert a single-element key into a one-element batched key. Covers From<FieldShareKey<F>> for FieldShareKeys<F, U1> and From<CurveKey<C>> for CurveKeys<C, U1>.

Source§

fn from(key: PairwiseAuthKey<A, T>) -> Self

Converts to this type from the input type.
Source§

impl<C: Curve> From<PairwiseAuthKey<FieldElement<<C as Curve>::Scalar>, FieldElement<<C as Curve>::Scalar>>> for CurveKey<C>

Source§

fn from(scalar_key: ScalarKey<C>) -> Self

Converts to this type from the input type.
Source§

impl<C: Curve, M: Positive> From<PairwiseAuthKey<FieldElement<<C as Curve>::Scalar>, HeapArray<FieldElement<<C as Curve>::Scalar>, M>>> for CurveKeys<C, M>

Source§

fn from(scalar_key: ScalarKeys<C, M>) -> Self

Converts to this type from the input type.
Source§

impl<A: InPlaceCodec, B: InPlaceCodec> InPlaceCodec for PairwiseAuthKey<A, B>

Source§

const ENCODED_SIZE: usize

Encoded width in bytes.
Source§

fn write_le_bytes(&self, out: &mut [MaybeUninit<u8>])

Write self’s canonical encoding into out, initializing every byte. out.len() == Self::ENCODED_SIZE.
Source§

fn read_le_bytes(bytes: &[u8]) -> Result<Self, PrimitiveError>

Parse self from bytes, validating it. bytes.len() == Self::ENCODED_SIZE. Returns an error on an invalid (e.g. non-canonical) encoding.
Source§

const PACK: usize = 1

Number of consecutive elements that encode together as a “pack”. 1 (the default) means no grouping — each element is encoded independently via Self::write_le_bytes. Must be >= 1. Read more
Source§

const PACK_BYTES: usize = _

Bytes a full PACK-element pack occupies. Defaults to PACK * ENCODED_SIZE (the packed bytes are exactly the per-element bytes laid out back-to-back — the case for a pure vectorization like Mersenne107). Override with a smaller value for a sub-byte packing (e.g. Gf2: PACK = 8, PACK_BYTES = 1).
Source§

fn write_pack(items: &[Self], out: &mut [MaybeUninit<u8>])

Encode exactly Self::PACK elements (items.len() == PACK) into out (out.len() == PACK_BYTES), initializing every byte. Read more
Source§

fn read_pack( bytes: &[u8], out: &mut [MaybeUninit<Self>], ) -> Result<(), PrimitiveError>

Decode a full pack: read Self::PACK elements from bytes (bytes.len() == PACK_BYTES) into out (out.len() == PACK), returning an error on an invalid encoding. Read more
Source§

fn to_inplace_bytes(&self) -> Vec<u8>

Serialize self into a freshly-allocated buffer of exactly Self::ENCODED_SIZE bytes, bypassing per-element serde dispatch.
Source§

fn from_inplace_bytes(bytes: &[u8]) -> Result<Self, PrimitiveError>

Deserialize Self from exactly Self::ENCODED_SIZE bytes.
Source§

impl<A, B, RHS, BPrime> Mul<RHS> for PairwiseAuthKey<A, B>
where B: Mul<RHS, Output = BPrime>,

Source§

type Output = PairwiseAuthKey<A, BPrime>

The resulting type after applying the * operator.
Source§

fn mul(self, other: RHS) -> Self::Output

Performs the * operation. Read more
Source§

impl<A: Clone, B, RHS, BPrime> Mul<RHS> for &PairwiseAuthKey<A, B>
where for<'b> &'b B: Mul<RHS, Output = BPrime>,

Source§

type Output = PairwiseAuthKey<A, BPrime>

The resulting type after applying the * operator.
Source§

fn mul(self, other: RHS) -> Self::Output

Performs the * operation. Read more
Source§

impl<A, B, RHS> MulAssign<RHS> for PairwiseAuthKey<A, B>
where B: MulAssign<RHS>,

Source§

fn mul_assign(&mut self, other: RHS)

Performs the *= operation. Read more
Source§

impl<A, B: Neg<Output = B>> Neg for PairwiseAuthKey<A, B>

Source§

type Output = PairwiseAuthKey<A, B>

The resulting type after applying the - operator.
Source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
Source§

impl<A, B: Neg<Output = B>> Neg for &PairwiseAuthKey<A, B>
where PairwiseAuthKey<A, B>: Clone,

Source§

type Output = PairwiseAuthKey<A, B>

The resulting type after applying the - operator.
Source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
Source§

impl<A: PartialEq, B: PartialEq> PartialEq for PairwiseAuthKey<A, B>

Source§

fn eq(&self, other: &PairwiseAuthKey<A, B>) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl<A: Random, B: Random> Random for PairwiseAuthKey<A, B>

Source§

fn random(rng: impl CryptoRngCore) -> Self

Source§

fn random_n<Container: FromIterator<Self>>( rng: impl CryptoRngCore, size: usize, ) -> Container

Source§

fn random_array<M: Positive>(rng: impl CryptoRngCore) -> HeapArray<Self, M>

Source§

impl<A: Clone, B: Random> RandomWith<Arc<A>> for PairwiseAuthKey<A, B>

Source§

fn random_with(rng: impl CryptoRngCore, alpha: GlobalKey<A>) -> Self

Source§

fn random_n_with<Container: FromIterator<Self>>( rng: impl CryptoRngCore, size: usize, data: D, ) -> Container

Source§

fn random_n_with_each<Container: FromIterator<Self>>( rng: impl CryptoRngCore, all_data: impl IntoExactSizeIterator<Item = D>, ) -> Container

Source§

impl<A, B> Serialize for PairwiseAuthKey<A, B>
where A: Serialize, B: Serialize,

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<A: PartialEq, B: PartialEq> StructuralPartialEq for PairwiseAuthKey<A, B>

Source§

impl<A: PartialEq, B> Sub for PairwiseAuthKey<A, B>
where for<'a> B: Sub<&'a B, Output = B>,

Source§

type Output = PairwiseAuthKey<A, B>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: PairwiseAuthKey<A, B>) -> Self::Output

Performs the - operation. Read more
Source§

impl<A: PartialEq, B> Sub<&PairwiseAuthKey<A, B>> for PairwiseAuthKey<A, B>
where for<'a> B: Sub<&'a B, Output = B>,

Source§

type Output = PairwiseAuthKey<A, B>

The resulting type after applying the - operator.
Source§

fn sub(self, other: &PairwiseAuthKey<A, B>) -> Self::Output

Performs the - operation. Read more
Source§

impl<A: PartialEq, B> Sub<&PairwiseAuthKey<A, B>> for &PairwiseAuthKey<A, B>
where for<'a> B: Sub<&'a B, Output = B>, PairwiseAuthKey<A, B>: Clone,

Source§

type Output = PairwiseAuthKey<A, B>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &PairwiseAuthKey<A, B>) -> Self::Output

Performs the - operation. Read more
Source§

impl<A: PartialEq, B> Sub<PairwiseAuthKey<A, B>> for &PairwiseAuthKey<A, B>
where for<'a> B: Sub<&'a B, Output = B>, PairwiseAuthKey<A, B>: Clone,

Source§

type Output = PairwiseAuthKey<A, B>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: PairwiseAuthKey<A, B>) -> Self::Output

Performs the - operation. Read more
Source§

impl<'a, A: PartialEq, B> SubAssign for PairwiseAuthKey<A, B>
where for<'b> B: SubAssign<&'b B>,

Source§

fn sub_assign(&mut self, rhs: PairwiseAuthKey<A, B>)

Performs the -= operation. Read more
Source§

impl<'a, A: PartialEq, B> SubAssign<&'a PairwiseAuthKey<A, B>> for PairwiseAuthKey<A, B>
where for<'b> B: SubAssign<&'b B>,

Source§

fn sub_assign(&mut self, other: &'a PairwiseAuthKey<A, B>)

Performs the -= operation. Read more
Source§

impl<A: Default + PartialEq, B> Sum for PairwiseAuthKey<A, B>
where for<'a> B: Add<&'a B, Output = B> + Default,

Source§

fn sum<I: Iterator<Item = Self>>(iter: I) -> Self

Takes an iterator and generates Self from the elements by “summing up” the items.

Auto Trait Implementations§

§

impl<A, B> Freeze for PairwiseAuthKey<A, B>
where B: Freeze,

§

impl<A, B> RefUnwindSafe for PairwiseAuthKey<A, B>

§

impl<A, B> Send for PairwiseAuthKey<A, B>
where B: Send, A: Sync + Send,

§

impl<A, B> Sync for PairwiseAuthKey<A, B>
where B: Sync, A: Sync + Send,

§

impl<A, B> Unpin for PairwiseAuthKey<A, B>
where B: Unpin,

§

impl<A, B> UnsafeUnpin for PairwiseAuthKey<A, B>
where B: UnsafeUnpin,

§

impl<A, B> UnwindSafe for PairwiseAuthKey<A, B>

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, 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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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, Rhs, Output> GroupOps<Rhs, Output> for T
where T: Add<Rhs, Output = Output> + Sub<Rhs, Output = Output> + AddAssign<Rhs> + SubAssign<Rhs>,

Source§

impl<T, Rhs, Output> GroupOpsOwned<Rhs, Output> for T
where T: for<'r> GroupOps<&'r Rhs, Output>,

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, S> IntoExactSizeIterator for T
where T: IntoIterator<IntoIter = S>, S: ExactSizeIterator<Item = <T as IntoIterator>::Item>,

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

Source§

type Output = T

Should always be Self
Source§

impl<T, Rhs, Output> ScalarMul<Rhs, Output> for T
where T: Mul<Rhs, Output = Output> + MulAssign<Rhs>,

Source§

impl<T, Rhs, Output> ScalarMulOwned<Rhs, Output> for T
where T: for<'r> ScalarMul<&'r Rhs, Output>,

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