pub struct Halo2Backend<'ctx> { /* private fields */ }Expand description
Backend bundling the concrete halo2 chips and the circuit-building [Context]. The
transcript is created lazily by TranscriptInst::init_transcript, mirroring
TranscriptChip::new at the start of constrained_verify.
Implementations§
Source§impl<'ctx> Halo2Backend<'ctx>
impl<'ctx> Halo2Backend<'ctx>
pub fn new(range: Arc<RangeChip<Fr>>, ctx: &'ctx mut Context<Fr>) -> Self
pub fn from_ext_chip(ext: BabyBearExt4Chip, ctx: &'ctx mut Context<Fr>) -> Self
pub fn ext_chip(&self) -> &BabyBearExt4Chip
Trait Implementations§
Source§impl BabyBearExt4Inst for Halo2Backend<'_>
impl BabyBearExt4Inst for Halo2Backend<'_>
fn ext_load_constant(&mut self, value: BabyBearExt4) -> BabyBearExt4Wire
fn ext_load_reduced_constant( &mut self, value: BabyBearExt4, ) -> ReducedBabyBearExt4Wire
fn ext_add( &mut self, a: BabyBearExt4Wire, b: BabyBearExt4Wire, ) -> BabyBearExt4Wire
fn ext_neg(&mut self, a: BabyBearExt4Wire) -> BabyBearExt4Wire
fn ext_sub( &mut self, a: BabyBearExt4Wire, b: BabyBearExt4Wire, ) -> BabyBearExt4Wire
fn ext_scalar_mul( &mut self, a: BabyBearExt4Wire, b: BabyBearWire, ) -> BabyBearExt4Wire
Source§fn ext_scalar_mul_add(
&mut self,
a: BabyBearExt4Wire,
b: BabyBearWire,
c: BabyBearExt4Wire,
) -> BabyBearExt4Wire
fn ext_scalar_mul_add( &mut self, a: BabyBearExt4Wire, b: BabyBearWire, c: BabyBearExt4Wire, ) -> BabyBearExt4Wire
a * b + c where b is a base-field scalar.fn ext_assert_zero(&mut self, a: BabyBearExt4Wire)
fn ext_assert_equal(&mut self, a: BabyBearExt4Wire, b: BabyBearExt4Wire)
fn ext_mul( &mut self, a: BabyBearExt4Wire, b: BabyBearExt4Wire, ) -> BabyBearExt4Wire
fn ext_div( &mut self, a: BabyBearExt4Wire, b: BabyBearExt4Wire, ) -> BabyBearExt4Wire
fn ext_reduce_max_bits(&mut self, a: BabyBearExt4Wire) -> BabyBearExt4Wire
fn ext_zero(&mut self) -> BabyBearExt4Wire
fn ext_from_base_const(&mut self, value: BabyBear) -> BabyBearExt4Wire
fn ext_from_base_var(&mut self, value: BabyBearWire) -> BabyBearExt4Wire
fn ext_mul_base_const( &mut self, a: BabyBearExt4Wire, c: BabyBear, ) -> BabyBearExt4Wire
fn ext_square(&mut self, a: BabyBearExt4Wire) -> BabyBearExt4Wire
Source§fn ext_pow_power_of_two(
&mut self,
a: BabyBearExt4Wire,
n: usize,
) -> BabyBearExt4Wire
fn ext_pow_power_of_two( &mut self, a: BabyBearExt4Wire, n: usize, ) -> BabyBearExt4Wire
a^(2^n)Source§impl BabyBearInst for Halo2Backend<'_>
impl BabyBearInst for Halo2Backend<'_>
fn bb_load_constant(&mut self, value: BabyBear) -> BabyBearWire
fn bb_load_reduced_constant(&mut self, value: BabyBear) -> ReducedBabyBearWire
fn bb_reduce(&mut self, a: BabyBearWire) -> BabyBearWire
fn bb_reduce_max_bits(&mut self, a: BabyBearWire) -> BabyBearWire
fn bb_add(&mut self, a: BabyBearWire, b: BabyBearWire) -> BabyBearWire
fn bb_neg(&mut self, a: BabyBearWire) -> BabyBearWire
fn bb_sub(&mut self, a: BabyBearWire, b: BabyBearWire) -> BabyBearWire
fn bb_mul(&mut self, a: BabyBearWire, b: BabyBearWire) -> BabyBearWire
Source§fn bb_mul_add(
&mut self,
a: BabyBearWire,
b: BabyBearWire,
c: BabyBearWire,
) -> BabyBearWire
fn bb_mul_add( &mut self, a: BabyBearWire, b: BabyBearWire, c: BabyBearWire, ) -> BabyBearWire
a * b + cfn bb_div(&mut self, a: BabyBearWire, b: BabyBearWire) -> BabyBearWire
fn bb_assert_zero(&mut self, a: BabyBearWire)
fn bb_assert_equal(&mut self, a: BabyBearWire, b: BabyBearWire)
fn bb_zero(&mut self) -> BabyBearWire
fn bb_one(&mut self) -> BabyBearWire
fn bb_mul_const(&mut self, a: BabyBearWire, c: BabyBear) -> BabyBearWire
fn bb_square(&mut self, a: BabyBearWire) -> BabyBearWire
Source§fn bb_pow_power_of_two(&mut self, a: BabyBearWire, n: usize) -> BabyBearWire
fn bb_pow_power_of_two(&mut self, a: BabyBearWire, n: usize) -> BabyBearWire
a^(2^n)Source§impl ChipBase for Halo2Backend<'_>
impl ChipBase for Halo2Backend<'_>
Source§impl GateInst for Halo2Backend<'_>
impl GateInst for Halo2Backend<'_>
fn load_constant(&mut self, value: Fr) -> AssignedValue<Fr>
fn constrain_equal(&mut self, a: AssignedValue<Fr>, b: AssignedValue<Fr>)
Source§fn select(
&mut self,
when_true: AssignedValue<Fr>,
when_false: AssignedValue<Fr>,
cond: AssignedValue<Fr>,
) -> AssignedValue<Fr>
fn select( &mut self, when_true: AssignedValue<Fr>, when_false: AssignedValue<Fr>, cond: AssignedValue<Fr>, ) -> AssignedValue<Fr>
if cond { when_true } else { when_false }; cond must already be boolean-constrained.Source§fn select_const(
&mut self,
when_true: Fr,
when_false: Fr,
cond: AssignedValue<Fr>,
) -> AssignedValue<Fr>
fn select_const( &mut self, when_true: Fr, when_false: Fr, cond: AssignedValue<Fr>, ) -> AssignedValue<Fr>
Self::select with constant branch values.Source§fn num_to_bits(
&mut self,
a: AssignedValue<Fr>,
range_bits: usize,
) -> Vec<AssignedValue<Fr>>
fn num_to_bits( &mut self, a: AssignedValue<Fr>, range_bits: usize, ) -> Vec<AssignedValue<Fr>>
Little-endian bit decomposition, constrained to
range_bits bits.Source§fn inner_product_const(
&mut self,
values: &[AssignedValue<Fr>],
coeffs: &[Fr],
) -> AssignedValue<Fr>
fn inner_product_const( &mut self, values: &[AssignedValue<Fr>], coeffs: &[Fr], ) -> AssignedValue<Fr>
Inner product of
values with constant coefficients.Source§fn cell_count(&self) -> usize
fn cell_count(&self) -> usize
Number of cells assigned so far (for cell profiling).
Source§impl PopulateInputs for Halo2Backend<'_>
impl PopulateInputs for Halo2Backend<'_>
fn load_witness(&mut self, value: Fr) -> AssignedValue<Fr>
fn bb_load_reduced_witness(&mut self, value: BabyBear) -> ReducedBabyBearWire
fn ext_load_reduced_witness( &mut self, value: BabyBearExt4, ) -> ReducedBabyBearExt4Wire
Source§impl Poseidon2Inst for Halo2Backend<'_>
impl Poseidon2Inst for Halo2Backend<'_>
Source§fn hash_babybear_slice_to_digest(
&mut self,
values: &[ReducedBabyBearWire],
) -> AssignedValue<Fr>
fn hash_babybear_slice_to_digest( &mut self, values: &[ReducedBabyBearWire], ) -> AssignedValue<Fr>
Hash a slice of reduced BabyBear wires into a single Bn254 digest cell.
Source§impl TranscriptInst for Halo2Backend<'_>
impl TranscriptInst for Halo2Backend<'_>
Source§fn init_transcript(&mut self)
fn init_transcript(&mut self)
(Re)initialize the transcript sponge to the all-zero state.
fn observe(&mut self, value: &ReducedBabyBearWire)
fn observe_ext(&mut self, value: &ReducedBabyBearExt4Wire)
fn observe_commit(&mut self, digest: &DigestWire)
fn sample(&mut self) -> BabyBearWire
fn sample_ext(&mut self) -> BabyBearExt4Wire
Source§fn sample_bits(&mut self, bits: usize) -> AssignedValue<Fr>
fn sample_bits(&mut self, bits: usize) -> AssignedValue<Fr>
Sample and truncate to
bits bits; returns a raw cell in [0, 2^bits).Source§fn check_witness(&mut self, bits: usize, witness: &ReducedBabyBearWire)
fn check_witness(&mut self, bits: usize, witness: &ReducedBabyBearWire)
Asserts that the proof-of-work
witness passes with bits leading zero bits.Source§fn transcript_load_reduced_constant(
&mut self,
value: BabyBear,
) -> ReducedBabyBearWire<Self::F>
fn transcript_load_reduced_constant( &mut self, value: BabyBear, ) -> ReducedBabyBearWire<Self::F>
Load a reduced constant through
TranscriptChip’s baby-bear constant
cache, which is distinct from BabyBearChip::const_cache. This split
is preserved to keep the verifying key unchanged.Auto Trait Implementations§
impl<'ctx> !Freeze for Halo2Backend<'ctx>
impl<'ctx> !RefUnwindSafe for Halo2Backend<'ctx>
impl<'ctx> Send for Halo2Backend<'ctx>
impl<'ctx> !Sync for Halo2Backend<'ctx>
impl<'ctx> Unpin for Halo2Backend<'ctx>
impl<'ctx> !UnwindSafe for Halo2Backend<'ctx>
Blanket Implementations§
§impl<T> AlignerFor<1> for T
impl<T> AlignerFor<1> for T
§impl<T> AlignerFor<1024> for T
impl<T> AlignerFor<1024> for T
§impl<T> AlignerFor<128> for T
impl<T> AlignerFor<128> for T
§impl<T> AlignerFor<16> for T
impl<T> AlignerFor<16> for T
§impl<T> AlignerFor<16384> for T
impl<T> AlignerFor<16384> for T
§impl<T> AlignerFor<2> for T
impl<T> AlignerFor<2> for T
§impl<T> AlignerFor<2048> for T
impl<T> AlignerFor<2048> for T
§impl<T> AlignerFor<256> for T
impl<T> AlignerFor<256> for T
§impl<T> AlignerFor<32> for T
impl<T> AlignerFor<32> for T
§impl<T> AlignerFor<32768> for T
impl<T> AlignerFor<32768> for T
§impl<T> AlignerFor<4> for T
impl<T> AlignerFor<4> for T
§impl<T> AlignerFor<4096> for T
impl<T> AlignerFor<4096> for T
§impl<T> AlignerFor<512> for T
impl<T> AlignerFor<512> for T
§impl<T> AlignerFor<64> for T
impl<T> AlignerFor<64> for T
§impl<T> AlignerFor<8> for T
impl<T> AlignerFor<8> for T
§impl<T> AlignerFor<8192> for T
impl<T> AlignerFor<8192> for T
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
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read more
§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<S> ROExtAcc for S
impl<S> ROExtAcc for S
§fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
Gets a reference to a field, determined by
offset. Read more§fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
Gets a muatble reference to a field, determined by
offset. Read more§fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
Gets a const pointer to a field,
the field is determined by
offset. Read more§fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
Gets a mutable pointer to a field, determined by
offset. Read more§impl<S> ROExtOps<Aligned> for S
impl<S> ROExtOps<Aligned> for S
§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
Replaces a field (determined by
offset) with value,
returning the previous value of the field. Read more§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
§impl<S> ROExtOps<Unaligned> for S
impl<S> ROExtOps<Unaligned> for S
§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
Replaces a field (determined by
offset) with value,
returning the previous value of the field. Read more§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
§impl<F, Fp, Pt, FC> Selectable<F, Reduced<Pt, Fp>> for FCwhere
F: BigPrimeField,
Pt: Clone,
FC: Selectable<F, Pt>,
impl<F, Fp, Pt, FC> Selectable<F, Reduced<Pt, Fp>> for FCwhere
F: BigPrimeField,
Pt: Clone,
FC: Selectable<F, Pt>,
fn select( &self, ctx: &mut Context<F>, a: Reduced<Pt, Fp>, b: Reduced<Pt, Fp>, sel: AssignedValue<F>, ) -> Reduced<Pt, Fp>
fn select_by_indicator( &self, ctx: &mut Context<F>, a: &impl AsRef<[Reduced<Pt, Fp>]>, coeffs: &[AssignedValue<F>], ) -> Reduced<Pt, Fp>
§impl<T> SelfOps for Twhere
T: ?Sized,
impl<T> SelfOps for Twhere
T: ?Sized,
§fn piped<F, U>(self, f: F) -> U
fn piped<F, U>(self, f: F) -> U
Emulates the pipeline operator, allowing method syntax in more places. Read more
§fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
The same as
piped except that the function takes &Self
Useful for functions that take &Self instead of Self. Read more§fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
The same as
piped, except that the function takes &mut Self.
Useful for functions that take &mut Self instead of Self.§fn mutated<F>(self, f: F) -> Self
fn mutated<F>(self, f: F) -> Self
Mutates self using a closure taking self by mutable reference,
passing it along the method chain. Read more
§fn observe<F>(self, f: F) -> Self
fn observe<F>(self, f: F) -> Self
Observes the value of self, passing it along unmodified.
Useful in long method chains. Read more
§fn as_ref_<T>(&self) -> &T
fn as_ref_<T>(&self) -> &T
Performs a reference to reference conversion with
AsRef,
using the turbofish .as_ref_::<_>() syntax. Read more§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref() only in debug builds, and is erased in release
builds.§impl<This> TransmuteElement for Thiswhere
This: ?Sized,
impl<This> TransmuteElement for Thiswhere
This: ?Sized,
§unsafe fn transmute_element<T>(self) -> Self::TransmutedPtrwhere
Self: CanTransmuteElement<T>,
unsafe fn transmute_element<T>(self) -> Self::TransmutedPtrwhere
Self: CanTransmuteElement<T>,
Transmutes the element type of this pointer.. Read more
§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T> TypeIdentity for Twhere
T: ?Sized,
impl<T> TypeIdentity for Twhere
T: ?Sized,
§fn as_type_mut(&mut self) -> &mut Self::Type
fn as_type_mut(&mut self) -> &mut Self::Type
Converts a mutable reference back to the original type.
§fn into_type_box(self: Box<Self>) -> Box<Self::Type>
fn into_type_box(self: Box<Self>) -> Box<Self::Type>
Converts a box back to the original type.
§fn into_type_arc(this: Arc<Self>) -> Arc<Self::Type>
fn into_type_arc(this: Arc<Self>) -> Arc<Self::Type>
Converts an Arc back to the original type. Read more
§fn into_type_rc(this: Rc<Self>) -> Rc<Self::Type>
fn into_type_rc(this: Rc<Self>) -> Rc<Self::Type>
Converts an Rc back to the original type. Read more
§fn from_type_ref(this: &Self::Type) -> &Self
fn from_type_ref(this: &Self::Type) -> &Self
Converts a reference back to the original type.
§fn from_type_mut(this: &mut Self::Type) -> &mut Self
fn from_type_mut(this: &mut Self::Type) -> &mut Self
Converts a mutable reference back to the original type.
§fn from_type_box(this: Box<Self::Type>) -> Box<Self>
fn from_type_box(this: Box<Self::Type>) -> Box<Self>
Converts a box back to the original type.
§fn from_type_arc(this: Arc<Self::Type>) -> Arc<Self>
fn from_type_arc(this: Arc<Self::Type>) -> Arc<Self>
Converts an Arc back to the original type.
§fn from_type_rc(this: Rc<Self::Type>) -> Rc<Self>
fn from_type_rc(this: Rc<Self::Type>) -> Rc<Self>
Converts an Rc back to the original type.