Struct DepthInformer

Source
pub struct DepthInformer { /* private fields */ }
Expand description

Fancy Object which computes information about the circuit of interest to FHE.

Implementations§

Source§

impl DepthInformer

Source

pub fn new() -> DepthInformer

Create a new DepthInformer

Trait Implementations§

Source§

impl Clone for DepthInformer

Source§

fn clone(&self) -> DepthInformer

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 DepthInformer

Source§

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

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

impl Display for DepthInformer

Source§

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

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

impl Fancy for DepthInformer

Source§

type Item = DepthItem

The underlying wire datatype created by an object implementing Fancy.
Source§

type Error = DepthError

Errors which may be thrown by the users of Fancy.
Source§

fn constant(&mut self, _val: u16, q: u16) -> Result<Self::Item, Self::Error>

Create a constant x with modulus q.
Source§

fn output(&mut self, x: &Self::Item) -> Result<Option<u16>, Self::Error>

Process this wire as output. Some Fancy implementers don’t actually return output, but they need to be involved in the process, so they can return None.
Source§

fn outputs( &mut self, xs: &[Self::Item], ) -> Result<Option<Vec<u16>>, Self::Error>

Output a slice of wires.
Source§

impl FancyArithmetic for DepthInformer

Source§

fn add( &mut self, x: &Self::Item, y: &Self::Item, ) -> Result<Self::Item, Self::Error>

Add x and y.
Source§

fn sub( &mut self, x: &Self::Item, y: &Self::Item, ) -> Result<Self::Item, Self::Error>

Subtract x and y.
Source§

fn cmul(&mut self, x: &Self::Item, _y: u16) -> Result<Self::Item, Self::Error>

Multiply x times the constant c.
Source§

fn mul( &mut self, x: &Self::Item, y: &Self::Item, ) -> Result<Self::Item, Self::Error>

Multiply x and y.
Source§

fn proj( &mut self, _x: &Self::Item, _q: u16, _tt: Option<Vec<u16>>, ) -> Result<Self::Item, Self::Error>

Project x according to the truth table tt. Resulting wire has modulus q. Read more
Source§

fn add_many(&mut self, args: &[Self::Item]) -> Result<Self::Item, Self::Error>

Sum up a slice of wires.
Source§

fn mod_change( &mut self, x: &Self::Item, to_modulus: u16, ) -> Result<Self::Item, Self::Error>

Change the modulus of x to to_modulus using a projection gate.
Source§

impl FancyBinary for DepthInformer

Source§

fn xor( &mut self, x: &Self::Item, y: &Self::Item, ) -> Result<Self::Item, Self::Error>

Binary Xor
Source§

fn and( &mut self, x: &Self::Item, y: &Self::Item, ) -> Result<Self::Item, Self::Error>

Binary And
Source§

fn negate(&mut self, x: &Self::Item) -> Result<Self::Item, Self::Error>

Binary Not
Source§

fn or( &mut self, x: &Self::Item, y: &Self::Item, ) -> Result<Self::Item, Self::Error>

Uses Demorgan’s Rule implemented with an and gate and negation.
Source§

fn adder( &mut self, x: &Self::Item, y: &Self::Item, carry_in: Option<&Self::Item>, ) -> Result<(Self::Item, Self::Item), Self::Error>

Binary adder. Returns the result and the carry.
Source§

fn and_many(&mut self, args: &[Self::Item]) -> Result<Self::Item, Self::Error>

Returns 1 if all wires equal 1.
Source§

fn or_many(&mut self, args: &[Self::Item]) -> Result<Self::Item, Self::Error>

Returns 1 if any wire equals 1.
Source§

fn xor_many(&mut self, args: &[Self::Item]) -> Result<Self::Item, Self::Error>

XOR many wires together
Source§

fn mux_constant_bits( &mut self, x: &Self::Item, b1: bool, b2: bool, ) -> Result<Self::Item, Self::Error>

If x = 0 returns the constant b1 else return b2. Folds constants if possible.
Source§

fn mux( &mut self, b: &Self::Item, x: &Self::Item, y: &Self::Item, ) -> Result<Self::Item, Self::Error>

If b = 0 returns x else y.
Source§

impl FancyInput for DepthInformer

Source§

type Item = DepthItem

The type that this Fancy object operates over.
Source§

type Error = DepthError

The type of error that this Fancy object emits.
Source§

fn receive_many( &mut self, moduli: &[u16], ) -> Result<Vec<Self::Item>, Self::Error>

Receive many values where the input is not known.
Source§

fn encode_many( &mut self, _values: &[u16], moduli: &[u16], ) -> Result<Vec<Self::Item>, Self::Error>

Encode many values where the actual input is known. Read more
Source§

fn encode( &mut self, value: u16, modulus: u16, ) -> Result<Self::Item, Self::Error>

Encode a single value. Read more
Source§

fn receive(&mut self, modulus: u16) -> Result<Self::Item, Self::Error>

Receive a single value.
Source§

fn encode_bundle( &mut self, values: &[u16], moduli: &[u16], ) -> Result<Bundle<Self::Item>, Self::Error>

Encode a bundle.
Source§

fn receive_bundle( &mut self, moduli: &[u16], ) -> Result<Bundle<Self::Item>, Self::Error>

Receive a bundle.
Source§

fn encode_bundles( &mut self, values: &[Vec<u16>], moduli: &[Vec<u16>], ) -> Result<Vec<Bundle<Self::Item>>, Self::Error>

Encode many input bundles.
Source§

fn receive_many_bundles( &mut self, moduli: &[Vec<u16>], ) -> Result<Vec<Bundle<Self::Item>>, Self::Error>

Receive many input bundles.
Source§

fn crt_encode( &mut self, value: u128, modulus: u128, ) -> Result<CrtBundle<Self::Item>, Self::Error>

Encode a CRT input bundle.
Source§

fn crt_receive( &mut self, modulus: u128, ) -> Result<CrtBundle<Self::Item>, Self::Error>

Receive an CRT input bundle.
Source§

fn crt_encode_many( &mut self, values: &[u128], modulus: u128, ) -> Result<Vec<CrtBundle<Self::Item>>, Self::Error>

Encode many CRT input bundles.
Source§

fn crt_receive_many( &mut self, n: usize, modulus: u128, ) -> Result<Vec<CrtBundle<Self::Item>>, Self::Error>

Receive many CRT input bundles.
Source§

fn bin_encode( &mut self, value: u128, nbits: usize, ) -> Result<BinaryBundle<Self::Item>, Self::Error>

Encode a binary input bundle.
Source§

fn bin_receive( &mut self, nbits: usize, ) -> Result<BinaryBundle<Self::Item>, Self::Error>

Receive an binary input bundle.
Source§

fn bin_encode_many( &mut self, values: &[u128], nbits: usize, ) -> Result<Vec<BinaryBundle<Self::Item>>, Self::Error>

Encode many binary input bundles.
Source§

fn bin_receive_many( &mut self, ninputs: usize, nbits: usize, ) -> Result<Vec<BinaryBundle<Self::Item>>, Self::Error>

Receive many binary input bundles.
Source§

impl FancyReveal for DepthInformer

Source§

fn reveal(&mut self, _x: &Self::Item) -> Result<u16, Self::Error>

Reveal the contents of x to all parties.
Source§

fn reveal_many(&mut self, xs: &[Self::Item]) -> Result<Vec<u16>, Self::Error>

Reveal a slice of items to all parties.
Source§

fn reveal_bundle( &mut self, x: &Bundle<Self::Item>, ) -> Result<Vec<u16>, Self::Error>

Reveal a bundle to all parties.
Source§

fn reveal_many_bundles( &mut self, xs: &[Bundle<Self::Item>], ) -> Result<Vec<Vec<u16>>, Self::Error>

Reveal many bundles to all parties.
Source§

fn crt_reveal(&mut self, x: &CrtBundle<Self::Item>) -> Result<u128, Self::Error>

Reveal a CRT bundle to all parties.
Source§

fn crt_reveal_many( &mut self, xs: &[CrtBundle<Self::Item>], ) -> Result<Vec<u128>, Self::Error>

Reveal many CRT bundles to all parties.
Source§

fn bin_reveal( &mut self, x: &BinaryBundle<Self::Item>, ) -> Result<u128, Self::Error>

Reveal a binary bundle to all parties.
Source§

fn bin_reveal_many( &mut self, xs: &[BinaryBundle<Self::Item>], ) -> Result<Vec<u128>, Self::Error>

Reveal many binary bundles to all parties.

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<F> ArithmeticBundleGadgets for F
where F: FancyArithmetic,

Source§

fn add_bundles( &mut self, x: &Bundle<Self::Item>, y: &Bundle<Self::Item>, ) -> Result<Bundle<Self::Item>, Self::Error>

Add two wire bundles pairwise, zipping addition. Read more
Source§

fn sub_bundles( &mut self, x: &Bundle<Self::Item>, y: &Bundle<Self::Item>, ) -> Result<Bundle<Self::Item>, Self::Error>

Subtract two wire bundles, residue by residue. Read more
Source§

fn mul_bundles( &mut self, x: &Bundle<Self::Item>, y: &Bundle<Self::Item>, ) -> Result<Bundle<Self::Item>, Self::Error>

Multiply each wire in x with each wire in y, pairwise. Read more
Source§

fn mixed_radix_addition( &mut self, xs: &[Bundle<Self::Item>], ) -> Result<Bundle<Self::Item>, Self::Error>

Mixed radix addition.
Source§

fn mixed_radix_addition_msb_only( &mut self, xs: &[Bundle<Self::Item>], ) -> Result<Self::Item, Self::Error>

Mixed radix addition only returning the MSB.
Source§

fn mask( &mut self, b: &Self::Item, x: &Bundle<Self::Item>, ) -> Result<Bundle<Self::Item>, Self::Error>

If b=0 then return 0, else return x.
Source§

fn eq_bundles( &mut self, x: &Bundle<Self::Item>, y: &Bundle<Self::Item>, ) -> Result<Self::Item, Self::Error>

Compute x == y. Returns a wire encoding the result mod 2.
Source§

impl<F> BinaryBundleGadgets for F
where F: FancyBinary,

Source§

fn multiplex( &mut self, b: &Self::Item, x: &Bundle<Self::Item>, y: &Bundle<Self::Item>, ) -> Result<Bundle<Self::Item>, Self::Error>

If b=0 then return x, else return y.
Source§

impl<F> BinaryGadgets for F
where F: FancyBinary,

Source§

fn bin_constant_bundle( &mut self, val: u128, nbits: usize, ) -> Result<BinaryBundle<Self::Item>, Self::Error>

Create a constant bundle using base 2 inputs.
Source§

fn bin_output( &mut self, x: &BinaryBundle<Self::Item>, ) -> Result<Option<u128>, Self::Error>

Output a binary bundle and interpret the result as a u128.
Source§

fn bin_outputs( &mut self, xs: &[BinaryBundle<Self::Item>], ) -> Result<Option<Vec<u128>>, Self::Error>

Output a slice of binary bundles and interpret the results as a u128.
Source§

fn bin_xor( &mut self, x: &BinaryBundle<Self::Item>, y: &BinaryBundle<Self::Item>, ) -> Result<BinaryBundle<Self::Item>, Self::Error>

Xor the bits of two bundles together pairwise.
Source§

fn bin_and( &mut self, x: &BinaryBundle<Self::Item>, y: &BinaryBundle<Self::Item>, ) -> Result<BinaryBundle<Self::Item>, Self::Error>

And the bits of two bundles together pairwise.
Source§

fn bin_or( &mut self, x: &BinaryBundle<Self::Item>, y: &BinaryBundle<Self::Item>, ) -> Result<BinaryBundle<Self::Item>, Self::Error>

Or the bits of two bundles together pairwise.
Source§

fn bin_addition( &mut self, xs: &BinaryBundle<Self::Item>, ys: &BinaryBundle<Self::Item>, ) -> Result<(BinaryBundle<Self::Item>, Self::Item), Self::Error>

Binary addition. Returns the result and the carry.
Source§

fn bin_addition_no_carry( &mut self, xs: &BinaryBundle<Self::Item>, ys: &BinaryBundle<Self::Item>, ) -> Result<BinaryBundle<Self::Item>, Self::Error>

Binary addition. Avoids creating extra gates for the final carry.
Source§

fn bin_multiplication_lower_half( &mut self, xs: &BinaryBundle<Self::Item>, ys: &BinaryBundle<Self::Item>, ) -> Result<BinaryBundle<Self::Item>, Self::Error>

Binary multiplication. Read more
Source§

fn bin_mul( &mut self, xs: &BinaryBundle<Self::Item>, ys: &BinaryBundle<Self::Item>, ) -> Result<BinaryBundle<Self::Item>, Self::Error>

Full multiplier
Source§

fn bin_div( &mut self, xs: &BinaryBundle<Self::Item>, ys: &BinaryBundle<Self::Item>, ) -> Result<BinaryBundle<Self::Item>, Self::Error>

Divider
Source§

fn bin_twos_complement( &mut self, xs: &BinaryBundle<Self::Item>, ) -> Result<BinaryBundle<Self::Item>, Self::Error>

Compute the twos complement of the input bundle (which must be base 2).
Source§

fn bin_subtraction( &mut self, xs: &BinaryBundle<Self::Item>, ys: &BinaryBundle<Self::Item>, ) -> Result<(BinaryBundle<Self::Item>, Self::Item), Self::Error>

Subtract two binary bundles. Returns the result and whether it underflowed. Read more
Source§

fn bin_multiplex_constant_bits( &mut self, x: &Self::Item, c1: u128, c2: u128, nbits: usize, ) -> Result<BinaryBundle<Self::Item>, Self::Error>

If x=0 return c1 as a bundle of constant bits, else return c2.
Source§

fn bin_multiplex( &mut self, b: &Self::Item, x: &BinaryBundle<Self::Item>, y: &BinaryBundle<Self::Item>, ) -> Result<BinaryBundle<Self::Item>, Self::Error>

Multiplex gadget for binary bundles
Source§

fn bin_cmul( &mut self, x: &BinaryBundle<Self::Item>, c: u128, nbits: usize, ) -> Result<BinaryBundle<Self::Item>, Self::Error>

Write the constant in binary and that gives you the shift amounts, Eg.. 7x is 4x+2x+x.
Source§

fn bin_abs( &mut self, x: &BinaryBundle<Self::Item>, ) -> Result<BinaryBundle<Self::Item>, Self::Error>

Compute the absolute value of a binary bundle.
Source§

fn bin_lt_signed( &mut self, x: &BinaryBundle<Self::Item>, y: &BinaryBundle<Self::Item>, ) -> Result<Self::Item, Self::Error>

Returns 1 if x < y (signed version)
Source§

fn bin_lt( &mut self, x: &BinaryBundle<Self::Item>, y: &BinaryBundle<Self::Item>, ) -> Result<Self::Item, Self::Error>

Returns 1 if x < y.
Source§

fn bin_geq( &mut self, x: &BinaryBundle<Self::Item>, y: &BinaryBundle<Self::Item>, ) -> Result<Self::Item, Self::Error>

Returns 1 if x >= y.
Source§

fn bin_max( &mut self, xs: &[BinaryBundle<Self::Item>], ) -> Result<BinaryBundle<Self::Item>, Self::Error>

Compute the maximum bundle in xs.
Source§

fn bin_demux( &mut self, x: &BinaryBundle<Self::Item>, ) -> Result<Vec<Self::Item>, Self::Error>

Demux a binary bundle into a unary vector.
Source§

fn bin_rsa( &mut self, x: &BinaryBundle<Self::Item>, c: usize, ) -> Result<BinaryBundle<Self::Item>, Self::Error>

arithmetic right shift (shifts the sign of the MSB into the new spaces)
Source§

fn bin_rsl( &mut self, x: &BinaryBundle<Self::Item>, c: usize, ) -> Result<BinaryBundle<Self::Item>, Self::Error>

logical right shift (shifts 0 into the empty spaces)
Source§

fn bin_shr( &mut self, x: &BinaryBundle<Self::Item>, c: usize, pad: &Self::Item, ) -> Result<BinaryBundle<Self::Item>, Self::Error>

shift a value right by a constant, filling space on the right by pad
Source§

fn bin_eq_bundles( &mut self, x: &BinaryBundle<Self::Item>, y: &BinaryBundle<Self::Item>, ) -> Result<Self::Item, Self::Error>

Compute x == y for binary bundles.
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<F> BundleGadgets for F
where F: Fancy,

Source§

fn constant_bundle( &mut self, xs: &[u16], ps: &[u16], ) -> Result<Bundle<Self::Item>, Self::Error>

Creates a bundle of constant wires using moduli ps.
Source§

fn output_bundle( &mut self, x: &Bundle<Self::Item>, ) -> Result<Option<Vec<u16>>, Self::Error>

Output the wires that make up a bundle.
Source§

fn output_bundles( &mut self, xs: &[Bundle<Self::Item>], ) -> Result<Option<Vec<Vec<u16>>>, Self::Error>

Output a slice of bundles.
Source§

fn shift( &mut self, x: &Bundle<Self::Item>, n: usize, ) -> Result<Bundle<Self::Item>, Self::Error>

Shift residues, replacing them with zeros in the modulus of the least signifigant residue. Maintains the length of the input.
Source§

fn shift_extend( &mut self, x: &Bundle<Self::Item>, n: usize, ) -> Result<Bundle<Self::Item>, Self::Error>

Shift residues, replacing them with zeros in the modulus of the least signifigant residue. Output is extended with n elements.
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<F> CrtGadgets for F

Source§

fn crt_constant_bundle( &mut self, x: u128, q: u128, ) -> Result<CrtBundle<Self::Item>, Self::Error>

Creates a bundle of constant wires for the CRT representation of x under composite modulus q.
Source§

fn crt_output( &mut self, x: &CrtBundle<Self::Item>, ) -> Result<Option<u128>, Self::Error>

Output a CRT bundle and interpret it mod Q.
Source§

fn crt_outputs( &mut self, xs: &[CrtBundle<Self::Item>], ) -> Result<Option<Vec<u128>>, Self::Error>

Output a slice of CRT bundles and interpret the outputs mod Q.
Source§

fn crt_add( &mut self, x: &CrtBundle<Self::Item>, y: &CrtBundle<Self::Item>, ) -> Result<CrtBundle<Self::Item>, Self::Error>

Add two CRT bundles.
Source§

fn crt_sub( &mut self, x: &CrtBundle<Self::Item>, y: &CrtBundle<Self::Item>, ) -> Result<CrtBundle<Self::Item>, Self::Error>

Subtract two CRT bundles.
Source§

fn crt_cmul( &mut self, x: &CrtBundle<Self::Item>, c: u128, ) -> Result<CrtBundle<Self::Item>, Self::Error>

Multiplies each wire in x by the corresponding residue of c.
Source§

fn crt_mul( &mut self, x: &CrtBundle<Self::Item>, y: &CrtBundle<Self::Item>, ) -> Result<CrtBundle<Self::Item>, Self::Error>

Multiply x with y.
Source§

fn crt_cexp( &mut self, x: &CrtBundle<Self::Item>, c: u16, ) -> Result<CrtBundle<Self::Item>, Self::Error>

Exponentiate x by the constant c.
Source§

fn crt_rem( &mut self, x: &CrtBundle<Self::Item>, p: u16, ) -> Result<CrtBundle<Self::Item>, Self::Error>

Compute the remainder with respect to modulus p.
Source§

fn crt_fractional_mixed_radix( &mut self, bun: &CrtBundle<Self::Item>, ms: &[u16], ) -> Result<Self::Item, Self::Error>

Helper function for advanced gadgets, returns the MSB of the fractional part of X/M where M=product(ms).
Source§

fn crt_relu( &mut self, x: &CrtBundle<Self::Item>, accuracy: &str, output_moduli: Option<&[u16]>, ) -> Result<CrtBundle<Self::Item>, Self::Error>

Compute max(x,0). Read more
Source§

fn crt_sign( &mut self, x: &CrtBundle<Self::Item>, accuracy: &str, ) -> Result<Self::Item, Self::Error>

Return 0 if x is positive and 1 if x is negative.
Source§

fn crt_sgn( &mut self, x: &CrtBundle<Self::Item>, accuracy: &str, output_moduli: Option<&[u16]>, ) -> Result<CrtBundle<Self::Item>, Self::Error>

Return if x >= 0 then 1 else -1, where -1 is interpreted as Q-1. Read more
Source§

fn crt_lt( &mut self, x: &CrtBundle<Self::Item>, y: &CrtBundle<Self::Item>, accuracy: &str, ) -> Result<Self::Item, Self::Error>

Returns 1 if x < y.
Source§

fn crt_geq( &mut self, x: &CrtBundle<Self::Item>, y: &CrtBundle<Self::Item>, accuracy: &str, ) -> Result<Self::Item, Self::Error>

Returns 1 if x >= y.
Source§

fn crt_max( &mut self, xs: &[CrtBundle<Self::Item>], accuracy: &str, ) -> Result<CrtBundle<Self::Item>, Self::Error>

Compute the maximum bundle in xs.
Source§

fn crt_to_pmr( &mut self, xs: &CrtBundle<Self::Item>, ) -> Result<Bundle<Self::Item>, Self::Error>

Convert the xs bundle to PMR representation. Useful for extracting out of CRT.
Source§

fn pmr_lt( &mut self, x: &CrtBundle<Self::Item>, y: &CrtBundle<Self::Item>, ) -> Result<Self::Item, Self::Error>

Comparison based on PMR, more expensive than crt_lt but works on more things. For it to work, there must be an extra modulus in the CRT that is not necessary to represent the values. This ensures that if x < y, the most significant PMR digit is nonzero after subtracting them. You could add a prime to your CrtBundles right before using this gadget.
Source§

fn pmr_geq( &mut self, x: &CrtBundle<Self::Item>, y: &CrtBundle<Self::Item>, ) -> Result<Self::Item, Self::Error>

Comparison based on PMR, more expensive than crt_lt but works on more things. For it to work, there must be an extra modulus in the CRT that is not necessary to represent the values. This ensures that if x < y, the most significant PMR digit is nonzero after subtracting them. You could add a prime to your CrtBundles right before using this gadget.
Source§

fn crt_div( &mut self, x: &CrtBundle<Self::Item>, y: &CrtBundle<Self::Item>, ) -> Result<CrtBundle<Self::Item>, Self::Error>

Generic, and expensive, CRT-based addition for two ciphertexts. Uses PMR comparison repeatedly. Requires an extra unused prime in both inputs.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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
§

impl<T> IsSameType<T> for T

§

const WITNESS: Witness<<T as IsSameType<T>>::EqualityProposition> = Witness::EQUAL_TYPES

A [Witness] that Self == T Read more
§

type EqualityProposition = TrueEqualityProposition

The [EqualityProposition] that Self == T
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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.
§

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

§

fn vzip(self) -> V