# Table of Contents - [halo2_ecc - Rust](#halo2-ecc-rust) - [Rustdoc help](#rustdoc-help) - [Rustdoc settings](#rustdoc-settings) - [halo2_base - Rust](#halo2-base-rust) - [halo2_ecc::bn254 - Rust](#halo2-ecc-bn254-rust) - [impl_field_ext_chip_common in halo2_ecc - Rust](#impl-field-ext-chip-common-in-halo2-ecc-rust) - [halo2_ecc::secp256k1 - Rust](#halo2-ecc-secp256k1-rust) - [halo2_ecc::fields - Rust](#halo2-ecc-fields-rust) - [CRTInteger in halo2_ecc::bigint - Rust](#crtinteger-in-halo2-ecc-bigint-rust) - [FixedCRTInteger in halo2_ecc::bigint - Rust](#fixedcrtinteger-in-halo2-ecc-bigint-rust) - [halo2_ecc::bigint - Rust](#halo2-ecc-bigint-rust) - [FixedOverflowInteger in halo2_ecc::bigint - Rust](#fixedoverflowinteger-in-halo2-ecc-bigint-rust) - [zkevm_keccak - Rust](#zkevm-keccak-rust) - [halo2_ecc::ecc - Rust](#halo2-ecc-ecc-rust) - [List of all items in this crate](#list-of-all-items-in-this-crate) - [halo2_ecc::bigint::add_no_carry - Rust](#halo2-ecc-bigint-add-no-carry-rust) - [StrictEcPoint in halo2_ecc::ecc - Rust](#strictecpoint-in-halo2-ecc-ecc-rust) - [halo2_ecc::bn254::final_exp - Rust](#halo2-ecc-bn254-final-exp-rust) - [AssignedValue in halo2_base - Rust](#assignedvalue-in-halo2-base-rust) - [halo2_ecc::bigint::big_is_equal - Rust](#halo2-ecc-bigint-big-is-equal-rust) - [Fp12Chip in halo2_ecc::fields::fp12 - Rust](#fp12chip-in-halo2-ecc-fields-fp12-rust) - [halo2_base::safe_types - Rust](#halo2-base-safe-types-rust) - [halo2_ecc::bn254::pairing - Rust](#halo2-ecc-bn254-pairing-rust) - [halo2_ecc::bigint::big_is_zero - Rust](#halo2-ecc-bigint-big-is-zero-rust) - [Context in halo2_base - Rust](#context-in-halo2-base-rust) - [Fp2Chip in halo2_ecc::fields::fp2 - Rust](#fp2chip-in-halo2-ecc-fields-fp2-rust) - [halo2_base::utils - Rust](#halo2-base-utils-rust) - [FpChip in halo2_ecc::fields::fp - Rust](#fpchip-in-halo2-ecc-fields-fp-rust) - [ContextCell in halo2_base - Rust](#contextcell-in-halo2-base-rust) - [halo2_ecc::bigint::big_less_than - Rust](#halo2-ecc-bigint-big-less-than-rust) - [OverflowInteger in halo2_ecc::bigint - Rust](#overflowinteger-in-halo2-ecc-bigint-rust) - [ProperUint in halo2_ecc::bigint - Rust](#properuint-in-halo2-ecc-bigint-rust) - [halo2_ecc::bigint::carry_mod - Rust](#halo2-ecc-bigint-carry-mod-rust) - [Reduced in halo2_ecc::fields::fp - Rust](#reduced-in-halo2-ecc-fields-fp-rust) - [Fp12Chip in halo2_ecc::bn254 - Rust](#fp12chip-in-halo2-ecc-bn254-rust) - [QuantumCell in halo2_base - Rust](#quantumcell-in-halo2-base-rust) - [ProperCrtUint in halo2_ecc::bigint - Rust](#propercrtuint-in-halo2-ecc-bigint-rust) - [FieldVector in halo2_ecc::fields::vector - Rust](#fieldvector-in-halo2-ecc-fields-vector-rust) - [PairingChip in halo2_ecc::bn254::pairing - Rust](#pairingchip-in-halo2-ecc-bn254-pairing-rust) - [List of all items in this crate](#list-of-all-items-in-this-crate) - [halo2_base::gates - Rust](#halo2-base-gates-rust) - [EcPoint in halo2_ecc::ecc - Rust](#ecpoint-in-halo2-ecc-ecc-rust) - [EccChip in halo2_ecc::ecc - Rust](#eccchip-in-halo2-ecc-ecc-rust) - [Fp2Chip in halo2_ecc::bn254 - Rust](#fp2chip-in-halo2-ecc-bn254-rust) - [halo2_ecc::ecc::ecdsa - Rust](#halo2-ecc-ecc-ecdsa-rust) - [FpChip in halo2_ecc::bn254 - Rust](#fpchip-in-halo2-ecc-bn254-rust) - [SKIP_FIRST_PASS in halo2_base - Rust](#skip-first-pass-in-halo2-base-rust) - [halo2_ecc::bigint::check_carry_mod_to_zero - Rust](#halo2-ecc-bigint-check-carry-mod-to-zero-rust) - [halo2_ecc::ecc::fixed_base - Rust](#halo2-ecc-ecc-fixed-base-rust) - [halo2_ecc::fields::fp - Rust](#halo2-ecc-fields-fp-rust) - [FpPoint in halo2_ecc::bn254 - Rust](#fppoint-in-halo2-ecc-bn254-rust) - [halo2_ecc::bigint::check_carry_to_zero - Rust](#halo2-ecc-bigint-check-carry-to-zero-rust) - [halo2_ecc::fields::fp2 - Rust](#halo2-ecc-fields-fp2-rust) - [halo2_ecc::ecc::pippenger - Rust](#halo2-ecc-ecc-pippenger-rust) - [FqPoint in halo2_ecc::bn254 - Rust](#fqpoint-in-halo2-ecc-bn254-rust) - [halo2_ecc::bigint::mul_no_carry - Rust](#halo2-ecc-bigint-mul-no-carry-rust) - [FieldVectorChip in halo2_ecc::fields::vector - Rust](#fieldvectorchip-in-halo2-ecc-fields-vector-rust) - [BigIntStrategy in halo2_ecc::bigint - Rust](#bigintstrategy-in-halo2-ecc-bigint-rust) - [halo2_ecc::fields::fp12 - Rust](#halo2-ecc-fields-fp12-rust) - [SECP_B in halo2_ecc::secp256k1 - Rust](#secp-b-in-halo2-ecc-secp256k1-rust) - [halo2_ecc::bigint::negative - Rust](#halo2-ecc-bigint-negative-rust) - [FpChip in halo2_ecc::secp256k1 - Rust](#fpchip-in-halo2-ecc-secp256k1-rust) - [halo2_ecc::fields::vector - Rust](#halo2-ecc-fields-vector-rust) - [halo2_ecc::bigint::scalar_mul_and_add_no_carry - Rust](#halo2-ecc-bigint-scalar-mul-and-add-no-carry-rust) - [FqChip in halo2_ecc::secp256k1 - Rust](#fqchip-in-halo2-ecc-secp256k1-rust) - [check_is_on_curve in halo2_ecc::ecc - Rust](#check-is-on-curve-in-halo2-ecc-ecc-rust) - [FieldExtConstructor in halo2_ecc::fields - Rust](#fieldextconstructor-in-halo2-ecc-fields-rust) - [ComparableEcPoint in halo2_ecc::ecc - Rust](#comparableecpoint-in-halo2-ecc-ecc-rust) - [halo2_ecc::bigint::scalar_mul_no_carry - Rust](#halo2-ecc-bigint-scalar-mul-no-carry-rust) - [ec_add_unequal in halo2_ecc::ecc - Rust](#ec-add-unequal-in-halo2-ecc-ecc-rust) - [ScalarField in halo2_base::utils - Rust](#scalarfield-in-halo2-base-utils-rust) - [halo2_ecc::bigint::select - Rust](#halo2-ecc-bigint-select-rust) - [Secp256k1Chip in halo2_ecc::secp256k1 - Rust](#secp256k1chip-in-halo2-ecc-secp256k1-rust) - [ec_double in halo2_ecc::ecc - Rust](#ec-double-in-halo2-ecc-ecc-rust) - [FpStrategy in halo2_ecc::fields - Rust](#fpstrategy-in-halo2-ecc-fields-rust) - [PrimeFieldChip in halo2_ecc::fields - Rust](#primefieldchip-in-halo2-ecc-fields-rust) - [PrimeField in halo2_ecc::fields - Rust](#primefield-in-halo2-ecc-fields-rust) - [halo2_ecc::bigint::select_by_indicator - Rust](#halo2-ecc-bigint-select-by-indicator-rust) - [ec_double_and_add_unequal in halo2_ecc::ecc - Rust](#ec-double-and-add-unequal-in-halo2-ecc-ecc-rust) - [assign in halo2_ecc::bigint::add_no_carry - Rust](#assign-in-halo2-ecc-bigint-add-no-carry-rust) - [BigPrimeField in halo2_base::utils - Rust](#bigprimefield-in-halo2-base-utils-rust) - [halo2_ecc::bigint::sub - Rust](#halo2-ecc-bigint-sub-rust) - [Selectable in halo2_ecc::fields - Rust](#selectable-in-halo2-ecc-fields-rust) - [ec_select in halo2_ecc::ecc - Rust](#ec-select-in-halo2-ecc-ecc-rust) - [crt in halo2_ecc::bigint::add_no_carry - Rust](#crt-in-halo2-ecc-bigint-add-no-carry-rust) - [FieldChip in halo2_ecc::fields - Rust](#fieldchip-in-halo2-ecc-fields-rust) - [ec_select_by_indicator in halo2_ecc::ecc - Rust](#ec-select-by-indicator-in-halo2-ecc-ecc-rust) - [halo2_ecc::bigint::sub_no_carry - Rust](#halo2-ecc-bigint-sub-no-carry-rust) - [assign in halo2_ecc::bigint::big_is_equal - Rust](#assign-in-halo2-ecc-bigint-big-is-equal-rust) - [ec_select_from_bits in halo2_ecc::ecc - Rust](#ec-select-from-bits-in-halo2-ecc-ecc-rust) - [address in zkevm_keccak - Rust](#address-in-zkevm-keccak-rust) - [impl_expr in zkevm_keccak - Rust](#impl-expr-in-zkevm-keccak-rust) - [ec_sub_strict in halo2_ecc::ecc - Rust](#ec-sub-strict-in-halo2-ecc-ecc-rust) - [KeccakCircuitConfig in zkevm_keccak::keccak_packed_multi - Rust](#keccakcircuitconfig-in-zkevm-keccak-keccak-packed-multi-rust) - [get_naf in halo2_ecc::ecc - Rust](#get-naf-in-halo2-ecc-ecc-rust) - [word in zkevm_keccak - Rust](#word-in-zkevm-keccak-rust) - [assign in halo2_ecc::bigint::big_is_zero - Rust](#assign-in-halo2-ecc-bigint-big-is-zero-rust) - [ec_sub_unequal in halo2_ecc::ecc - Rust](#ec-sub-unequal-in-halo2-ecc-ecc-rust) - [word_map in zkevm_keccak - Rust](#word-map-in-zkevm-keccak-rust) - [crt in halo2_ecc::bigint::big_is_zero - Rust](#crt-in-halo2-ecc-bigint-big-is-zero-rust) - [load_random_point in halo2_ecc::ecc - Rust](#load-random-point-in-halo2-ecc-ecc-rust) - [positive in halo2_ecc::bigint::big_is_zero - Rust](#positive-in-halo2-ecc-bigint-big-is-zero-rust) - [into_strict_point in halo2_ecc::ecc - Rust](#into-strict-point-in-halo2-ecc-ecc-rust) - [GateInstructions in halo2_base::gates::flex_gate - Rust](#gateinstructions-in-halo2-base-gates-flex-gate-rust) - [crt in halo2_ecc::bigint::check_carry_mod_to_zero - Rust](#crt-in-halo2-ecc-bigint-check-carry-mod-to-zero-rust) - [assign in halo2_ecc::bigint::big_less_than - Rust](#assign-in-halo2-ecc-bigint-big-less-than-rust) - [crt in halo2_ecc::bigint::carry_mod - Rust](#crt-in-halo2-ecc-bigint-carry-mod-rust) - [multi_scalar_multiply in halo2_ecc::ecc - Rust](#multi-scalar-multiply-in-halo2-ecc-ecc-rust) - [truncate in halo2_ecc::bigint::check_carry_to_zero - Rust](#truncate-in-halo2-ecc-bigint-check-carry-to-zero-rust) - [BaseFieldEccChip in halo2_ecc::ecc - Rust](#basefieldeccchip-in-halo2-ecc-ecc-rust) - [Word in zkevm_keccak::util::eth_types - Rust](#word-in-zkevm-keccak-util-eth-types-rust) - [crt in halo2_ecc::bigint::mul_no_carry - Rust](#crt-in-halo2-ecc-bigint-mul-no-carry-rust) - [scalar_multiply in halo2_ecc::ecc - Rust](#scalar-multiply-in-halo2-ecc-ecc-rust) - [truncate in halo2_ecc::bigint::mul_no_carry - Rust](#truncate-in-halo2-ecc-bigint-mul-no-carry-rust) - [strict_ec_select_from_bits in halo2_ecc::ecc - Rust](#strict-ec-select-from-bits-in-halo2-ecc-ecc-rust) - [assign in halo2_ecc::bigint::negative - Rust](#assign-in-halo2-ecc-bigint-negative-rust) - [assign in halo2_ecc::bigint::scalar_mul_and_add_no_carry - Rust](#assign-in-halo2-ecc-bigint-scalar-mul-and-add-no-carry-rust) - [crt in halo2_ecc::bigint::scalar_mul_and_add_no_carry - Rust](#crt-in-halo2-ecc-bigint-scalar-mul-and-add-no-carry-rust) - [assign in halo2_ecc::bigint::scalar_mul_no_carry - Rust](#assign-in-halo2-ecc-bigint-scalar-mul-no-carry-rust) - [crt in halo2_ecc::bigint::scalar_mul_no_carry - Rust](#crt-in-halo2-ecc-bigint-scalar-mul-no-carry-rust) - [assign in halo2_ecc::bigint::select - Rust](#assign-in-halo2-ecc-bigint-select-rust) - [crt in halo2_ecc::bigint::select - Rust](#crt-in-halo2-ecc-bigint-select-rust) - [assign in halo2_ecc::bigint::select_by_indicator - Rust](#assign-in-halo2-ecc-bigint-select-by-indicator-rust) - [crt in halo2_ecc::bigint::select_by_indicator - Rust](#crt-in-halo2-ecc-bigint-select-by-indicator-rust) - [assign in halo2_ecc::bigint::sub - Rust](#assign-in-halo2-ecc-bigint-sub-rust) - [crt in halo2_ecc::bigint::sub - Rust](#crt-in-halo2-ecc-bigint-sub-rust) - [assign in halo2_ecc::bigint::sub_no_carry - Rust](#assign-in-halo2-ecc-bigint-sub-no-carry-rust) - [Address in zkevm_keccak::util::eth_types - Rust](#address-in-zkevm-keccak-util-eth-types-rust) - [crt in halo2_ecc::bigint::sub_no_carry - Rust](#crt-in-halo2-ecc-bigint-sub-no-carry-rust) - [fp12_multiply_with_line_equal in halo2_ecc::bn254::pairing - Rust](#fp12-multiply-with-line-equal-in-halo2-ecc-bn254-pairing-rust) - [fp12_multiply_with_line_unequal in halo2_ecc::bn254::pairing - Rust](#fp12-multiply-with-line-unequal-in-halo2-ecc-bn254-pairing-rust) - [miller_loop_BN in halo2_ecc::bn254::pairing - Rust](#miller-loop-bn-in-halo2-ecc-bn254-pairing-rust) - [multi_miller_loop_BN in halo2_ecc::bn254::pairing - Rust](#multi-miller-loop-bn-in-halo2-ecc-bn254-pairing-rust) - [neg_twisted_frobenius in halo2_ecc::bn254::pairing - Rust](#neg-twisted-frobenius-in-halo2-ecc-bn254-pairing-rust) - [sparse_fp12_multiply in halo2_ecc::bn254::pairing - Rust](#sparse-fp12-multiply-in-halo2-ecc-bn254-pairing-rust) - [sparse_line_function_equal in halo2_ecc::bn254::pairing - Rust](#sparse-line-function-equal-in-halo2-ecc-bn254-pairing-rust) - [zkevm_keccak::keccak_packed_multi - Rust](#zkevm-keccak-keccak-packed-multi-rust) - [sparse_line_function_unequal in halo2_ecc::bn254::pairing - Rust](#sparse-line-function-unequal-in-halo2-ecc-bn254-pairing-rust) - [twisted_frobenius in halo2_ecc::bn254::pairing - Rust](#twisted-frobenius-in-halo2-ecc-bn254-pairing-rust) - [ecdsa_verify_no_pubkey_check in halo2_ecc::ecc::ecdsa - Rust](#ecdsa-verify-no-pubkey-check-in-halo2-ecc-ecc-ecdsa-rust) - [msm_par in halo2_ecc::ecc::fixed_base - Rust](#msm-par-in-halo2-ecc-ecc-fixed-base-rust) - [scalar_multiply in halo2_ecc::ecc::fixed_base - Rust](#scalar-multiply-in-halo2-ecc-ecc-fixed-base-rust) - [mul_no_carry_w6 in halo2_ecc::fields::fp12 - Rust](#mul-no-carry-w6-in-halo2-ecc-fields-fp12-rust) - [multi_exp_par in halo2_ecc::ecc::pippenger - Rust](#multi-exp-par-in-halo2-ecc-ecc-pippenger-rust) - [BaseFieldChip in halo2_ecc::fields::fp - Rust](#basefieldchip-in-halo2-ecc-fields-fp-rust) - [zkevm_keccak::util - Rust](#zkevm-keccak-util-rust) - [FpConfig in halo2_ecc::fields::fp - Rust](#fpconfig-in-halo2-ecc-fields-fp-rust) - [halo2_base::utils::fs - Rust](#halo2-base-utils-fs-rust) - [halo2_base::utils::testing - Rust](#halo2-base-utils-testing-rust) - [RangeChip in halo2_base::gates::range - Rust](#rangechip-in-halo2-base-gates-range-rust) - [CurveAffineExt in halo2_base::utils - Rust](#curveaffineext-in-halo2-base-utils-rust) - [bigint_to_fe in halo2_base::utils - Rust](#bigint-to-fe-in-halo2-base-utils-rust) - [SafeBool in halo2_base::safe_types - Rust](#safebool-in-halo2-base-safe-types-rust) - [RangeInstructions in halo2_base::gates::range - Rust](#rangeinstructions-in-halo2-base-gates-range-rust) - [SafeType in halo2_base::safe_types - Rust](#safetype-in-halo2-base-safe-types-rust) - [SafeBytes32 in halo2_base::safe_types - Rust](#safebytes32-in-halo2-base-safe-types-rust) - [biguint_to_fe in halo2_base::utils - Rust](#biguint-to-fe-in-halo2-base-utils-rust) - [bit_length in halo2_base::utils - Rust](#bit-length-in-halo2-base-utils-rust) - [compose in halo2_base::utils - Rust](#compose-in-halo2-base-utils-rust) - [SafeUint8 in halo2_base::safe_types - Rust](#safeuint8-in-halo2-base-safe-types-rust) - [SafeUint16 in halo2_base::safe_types - Rust](#safeuint16-in-halo2-base-safe-types-rust) - [SafeUint32 in halo2_base::safe_types - Rust](#safeuint32-in-halo2-base-safe-types-rust) - [decompose in halo2_base::utils - Rust](#decompose-in-halo2-base-utils-rust) - [SafeUint64 in halo2_base::safe_types - Rust](#safeuint64-in-halo2-base-safe-types-rust) - [decompose_bigint in halo2_base::utils - Rust](#decompose-bigint-in-halo2-base-utils-rust) - [SafeTypeChip in halo2_base::safe_types - Rust](#safetypechip-in-halo2-base-safe-types-rust) - [SafeUint128 in halo2_base::safe_types - Rust](#safeuint128-in-halo2-base-safe-types-rust) - [decompose_bigint_option in halo2_base::utils - Rust](#decompose-bigint-option-in-halo2-base-utils-rust) - [SafeUint256 in halo2_base::safe_types - Rust](#safeuint256-in-halo2-base-safe-types-rust) - [decompose_biguint in halo2_base::utils - Rust](#decompose-biguint-in-halo2-base-utils-rust) - [List of all items in this crate](#list-of-all-items-in-this-crate) - [fe_to_bigint in halo2_base::utils - Rust](#fe-to-bigint-in-halo2-base-utils-rust) - [decompose_fe_to_u64_limbs in halo2_base::utils - Rust](#decompose-fe-to-u64-limbs-in-halo2-base-utils-rust) - [log2_ceil in halo2_base::utils - Rust](#log2-ceil-in-halo2-base-utils-rust) - [fe_to_biguint in halo2_base::utils - Rust](#fe-to-biguint-in-halo2-base-utils-rust) - [modulus in halo2_base::utils - Rust](#modulus-in-halo2-base-utils-rust) - [power_of_two in halo2_base::utils - Rust](#power-of-two-in-halo2-base-utils-rust) - [value_to_option in halo2_base::utils - Rust](#value-to-option-in-halo2-base-utils-rust) - [FlexGateConfigParams in halo2_base::gates::builder - Rust](#flexgateconfigparams-in-halo2-base-gates-builder-rust) - [KeygenAssignments in halo2_base::gates::builder - Rust](#keygenassignments-in-halo2-base-gates-builder-rust) - [GateThreadBuilder in halo2_base::gates::builder - Rust](#gatethreadbuilder-in-halo2-base-gates-builder-rust) - [RangeCircuitBuilder in halo2_base::gates::builder - Rust](#rangecircuitbuilder-in-halo2-base-gates-builder-rust) - [RangeWithInstanceCircuitBuilder in halo2_base::gates::builder - Rust](#rangewithinstancecircuitbuilder-in-halo2-base-gates-builder-rust) - [RangeWithInstanceConfig in halo2_base::gates::builder - Rust](#rangewithinstanceconfig-in-halo2-base-gates-builder-rust) - [BasicGateConfig in halo2_base::gates::flex_gate - Rust](#basicgateconfig-in-halo2-base-gates-flex-gate-rust) - [gen_srs in halo2_base::utils::fs - Rust](#gen-srs-in-halo2-base-utils-fs-rust) - [parallelize_in in halo2_base::gates::builder - Rust](#parallelize-in-in-halo2-base-gates-builder-rust) - [CircuitBuilderStage in halo2_base::gates::builder - Rust](#circuitbuilderstage-in-halo2-base-gates-builder-rust) - [FlexGateConfig in halo2_base::gates::flex_gate - Rust](#flexgateconfig-in-halo2-base-gates-flex-gate-rust) - [assign_threads_in in halo2_base::gates::builder - Rust](#assign-threads-in-in-halo2-base-gates-builder-rust) - [read_or_create_srs in halo2_base::utils::fs - Rust](#read-or-create-srs-in-halo2-base-utils-fs-rust) - [check_proof in halo2_base::utils::testing - Rust](#check-proof-in-halo2-base-utils-testing-rust) - [read_params in halo2_base::utils::fs - Rust](#read-params-in-halo2-base-utils-fs-rust) - [gen_proof in halo2_base::utils::testing - Rust](#gen-proof-in-halo2-base-utils-testing-rust) - [MultiPhaseThreadBreakPoints in halo2_base::gates::builder - Rust](#multiphasethreadbreakpoints-in-halo2-base-gates-builder-rust) - [ThreadBreakPoints in halo2_base::gates::builder - Rust](#threadbreakpoints-in-halo2-base-gates-builder-rust) - [GateStrategy in halo2_base::gates::flex_gate - Rust](#gatestrategy-in-halo2-base-gates-flex-gate-rust) - [MAX_PHASE in halo2_base::gates::flex_gate - Rust](#max-phase-in-halo2-base-gates-flex-gate-rust) - [RangeConfig in halo2_base::gates::range - Rust](#rangeconfig-in-halo2-base-gates-range-rust) - [GateChip in halo2_base::gates::flex_gate - Rust](#gatechip-in-halo2-base-gates-flex-gate-rust) - [RangeStrategy in halo2_base::gates::range - Rust](#rangestrategy-in-halo2-base-gates-range-rust) - [GateCircuitBuilder in halo2_base::gates::builder - Rust](#gatecircuitbuilder-in-halo2-base-gates-builder-rust) - [halo2_base::gates::builder - Rust](#halo2-base-gates-builder-rust) - [halo2_base::gates::flex_gate - Rust](#halo2-base-gates-flex-gate-rust) - [halo2_base::gates::range - Rust](#halo2-base-gates-range-rust) - [KeccakRow in zkevm_keccak::keccak_packed_multi - Rust](#keccakrow-in-zkevm-keccak-keccak-packed-multi-rust) - [KeccakTable in zkevm_keccak::keccak_packed_multi - Rust](#keccaktable-in-zkevm-keccak-keccak-packed-multi-rust) - [PartInfo in zkevm_keccak::util - Rust](#partinfo-in-zkevm-keccak-util-rust) - [Field in zkevm_keccak::util::eth_types - Rust](#field-in-zkevm-keccak-util-eth-types-rust) - [WordParts in zkevm_keccak::util - Rust](#wordparts-in-zkevm-keccak-util-rust) - [zkevm_keccak::util::constraint_builder - Rust](#zkevm-keccak-util-constraint-builder-rust) - [assign_advice_custom in zkevm_keccak::keccak_packed_multi - Rust](#assign-advice-custom-in-zkevm-keccak-keccak-packed-multi-rust) - [BaseConstraintBuilder in zkevm_keccak::util::constraint_builder - Rust](#baseconstraintbuilder-in-zkevm-keccak-util-constraint-builder-rust) - [AccessList in zkevm_keccak::util::eth_types - Rust](#accesslist-in-zkevm-keccak-util-eth-types-rust) - [zkevm_keccak::util::to_bytes - Rust](#zkevm-keccak-util-to-bytes-rust) - [ABSORB_WIDTH_PER_ROW_BYTES in zkevm_keccak::util - Rust](#absorb-width-per-row-bytes-in-zkevm-keccak-util-rust) - [get_num_keccak_f in zkevm_keccak::keccak_packed_multi - Rust](#get-num-keccak-f-in-zkevm-keccak-keccak-packed-multi-rust) - [keccak_phase0 in zkevm_keccak::keccak_packed_multi - Rust](#keccak-phase0-in-zkevm-keccak-keccak-packed-multi-rust) - [keccak_phase1 in zkevm_keccak::keccak_packed_multi - Rust](#keccak-phase1-in-zkevm-keccak-keccak-packed-multi-rust) - [ToScalar in zkevm_keccak::util::eth_types - Rust](#toscalar-in-zkevm-keccak-util-eth-types-rust) - [BIT_COUNT in zkevm_keccak::util - Rust](#bit-count-in-zkevm-keccak-util-rust) - [U256 in zkevm_keccak::util::eth_types - Rust](#u256-in-zkevm-keccak-util-eth-types-rust) - [ToLittleEndian in zkevm_keccak::util::eth_types - Rust](#tolittleendian-in-zkevm-keccak-util-eth-types-rust) - [multi_keccak_phase0 in zkevm_keccak::keccak_packed_multi - Rust](#multi-keccak-phase0-in-zkevm-keccak-keccak-packed-multi-rust) - [Signature in zkevm_keccak::util::eth_types - Rust](#signature-in-zkevm-keccak-util-eth-types-rust) - [H160 in zkevm_keccak::util::eth_types - Rust](#h160-in-zkevm-keccak-util-eth-types-rust) --- # halo2_ecc - Rust Crate [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/lib.rs.html#1-15) · [\[−\]](javascript:void(0) "collapse all docs") [Re-exports](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html#reexports) -------------------------------------------------------------------------------------- `pub use [halo2_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html "mod halo2_base") ;` [Modules](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html#modules) --------------------------------------------------------------------------------- [bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html "halo2_ecc::bigint mod") [bn254](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html "halo2_ecc::bn254 mod") [ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html "halo2_ecc::ecc mod") [fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html "halo2_ecc::fields mod") [secp256k1](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/index.html "halo2_ecc::secp256k1 mod") [Macros](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html#macros) ------------------------------------------------------------------------------- [impl\_field\_ext\_chip\_common](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/macro.impl_field_ext_chip_common.html "halo2_ecc::impl_field_ext_chip_common macro") --- # Rustdoc help Rustdoc help ============ [Back](javascript:void(0)) --- # Rustdoc settings Rustdoc settings ================ [Back](javascript:void(0)) --- # halo2_base - Rust Crate [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#1-416) · [\[−\]](javascript:void(0) "collapse all docs") Expand description Base library to build Halo2 circuits. [Re-exports](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html#reexports) --------------------------------------------------------------------------------------- `pub use halo2_proofs_axiom as halo2_proofs;` [Modules](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html#modules) ---------------------------------------------------------------------------------- [gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html "halo2_base::gates mod") Module that contains the main API for creating and working with circuits. [safe\_types](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/index.html "halo2_base::safe_types mod") Module for SafeType which enforce value range and realted functions. [utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html "halo2_base::utils mod") Utility functions for converting between different types of field elements. [Structs](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html#structs) ---------------------------------------------------------------------------------- [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "halo2_base::AssignedValue struct") Pointer containing cell value and location within [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") . [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "halo2_base::Context struct") Represents a single thread of an execution trace. [ContextCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html "halo2_base::ContextCell struct") Pointer to the position of a cell at `offset` in an advice column within a [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") of `context_id`. [Enums](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html#enums) ------------------------------------------------------------------------------ [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "halo2_base::QuantumCell enum") Convenience Enum which abstracts the scenarios under a value is added to an advice column. [Constants](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html#constants) -------------------------------------------------------------------------------------- [SKIP\_FIRST\_PASS](https://axiom-crypto.github.io/halo2-lib/halo2_base/constant.SKIP_FIRST_PASS.html "halo2_base::SKIP_FIRST_PASS constant") Constant representing whether the Layouter calls `synthesize` once just to get region shape. --- # halo2_ecc::bn254 - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bn254](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/mod.rs.html#1-16) · [\[−\]](javascript:void(0) "collapse all docs") [Modules](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html#modules) --------------------------------------------------------------------------------------- [final\_exp](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/final_exp/index.html "halo2_ecc::bn254::final_exp mod") [pairing](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/index.html "halo2_ecc::bn254::pairing mod") [Type Definitions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html#types) ---------------------------------------------------------------------------------------------- [Fp2Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp2Chip.html "halo2_ecc::bn254::Fp2Chip type") [Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp12Chip.html "halo2_ecc::bn254::Fp12Chip type") [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FpChip.html "halo2_ecc::bn254::FpChip type") [FpPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FpPoint.html "halo2_ecc::bn254::FpPoint type") [FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "halo2_ecc::bn254::FqPoint type") --- # impl_field_ext_chip_common in halo2_ecc - Rust Macro [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[impl\_field\_ext\_chip\_common](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/macro.impl_field_ext_chip_common.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#350-495) · [\[−\]](javascript:void(0) "collapse all docs") macro_rules! impl_field_ext_chip_common { () => { ... }; } --- # halo2_ecc::secp256k1 - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[secp256k1](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ==================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/secp256k1/mod.rs.html#1-12) · [\[−\]](javascript:void(0) "collapse all docs") [Constants](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/index.html#constants) ----------------------------------------------------------------------------------------------- [SECP\_B](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/constant.SECP_B.html "halo2_ecc::secp256k1::SECP_B constant") [Type Definitions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/index.html#types) -------------------------------------------------------------------------------------------------- [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/type.FpChip.html "halo2_ecc::secp256k1::FpChip type") [FqChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/type.FqChip.html "halo2_ecc::secp256k1::FqChip type") [Secp256k1Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/type.Secp256k1Chip.html "halo2_ecc::secp256k1::Secp256k1Chip type") --- # halo2_ecc::fields - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#1-319) · [\[−\]](javascript:void(0) "collapse all docs") [Modules](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html#modules) ---------------------------------------------------------------------------------------- [fp](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/index.html "halo2_ecc::fields::fp mod") [fp2](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/index.html "halo2_ecc::fields::fp2 mod") [fp12](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/index.html "halo2_ecc::fields::fp12 mod") [vector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/index.html "halo2_ecc::fields::vector mod") [Enums](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html#enums) ------------------------------------------------------------------------------------ [FpStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html "halo2_ecc::fields::FpStrategy enum") [Traits](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html#traits) -------------------------------------------------------------------------------------- [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "halo2_ecc::fields::FieldChip trait") Trait for common functionality for finite field chips. Primarily intended to emulate a “non-native” finite field using “native” values in a prime field `F`. Most functions are designed for the case when the non-native field is larger than the native field, but the trait can still be implemented and used in other cases. [FieldExtConstructor](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html "halo2_ecc::fields::FieldExtConstructor trait") [PrimeFieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html "halo2_ecc::fields::PrimeFieldChip trait") [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "halo2_ecc::fields::Selectable trait") [Trait Aliases](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html#trait-aliases) ---------------------------------------------------------------------------------------------------- [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "halo2_ecc::fields::PrimeField traitalias") --- # CRTInteger in halo2_ecc::bigint - Rust Struct [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =============================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#167-182) · [\[−\]](javascript:void(0) "collapse all docs") pub struct CRTInteger { pub truncation: OverflowInteger, pub native: AssignedValue, pub value: BigInt, } Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#fields) -------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#structfield.truncation) `truncation: [OverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html "struct halo2_ecc::bigint::OverflowInteger") `[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#structfield.native) `native: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") `[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#structfield.value) `value: [BigInt](https://docs.rs/num-bigint/0.4/num_bigint/bigint/struct.BigInt.html "struct num_bigint::bigint::BigInt") ` Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#implementations) -------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#197-209) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-CRTInteger%3CF%3E) ### impl [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#198-200) #### pub fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.new) (     truncation: [OverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html "struct halo2_ecc::bigint::OverflowInteger") ,     native: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ,     value: [BigInt](https://docs.rs/num-bigint/0.4/num_bigint/bigint/struct.BigInt.html "struct num_bigint::bigint::BigInt") ) -> Self [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#202-204) #### pub fn [native](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.native) (&self) -> &[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#206-208) #### pub fn [limbs](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.limbs) (&self) -> &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#trait-implementations) -------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#184-188) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-AsRef%3CCRTInteger%3CF%3E%3E-for-CRTInteger%3CF%3E) ### impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") > for [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#185-187) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.as_ref) #### fn [as\_ref](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html#tymethod.as_ref) (&self) -> &[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") Converts this type into a shared reference of the (usually inferred) input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#222-226) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-AsRef%3CCRTInteger%3CF%3E%3E-for-ProperCrtUint%3CF%3E) ### impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") > for [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#223-225) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.as_ref-1) #### fn [as\_ref](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html#tymethod.as_ref) (&self) -> &[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") Converts this type into a shared reference of the (usually inferred) input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#166) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-Clone-for-CRTInteger%3CF%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#166) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#166) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-Debug-for-CRTInteger%3CF%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#166) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#191-195) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-From%3C%26%27a%20CRTInteger%3CF%3E%3E-for-CRTInteger%3CF%3E) ### impl<'a, F: [ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html "trait halo2_base::utils::ScalarField") \> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&'a [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") > for [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#192-194) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (x: &'a [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") ) -> Self Converts to this type from the input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#241-245) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-From%3C%26%27a%20ProperCrtUint%3CF%3E%3E-for-CRTInteger%3CF%3E) ### impl<'a, F: [ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html "trait halo2_base::utils::ScalarField") \> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&'a [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") > for [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#242-244) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.from-2) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (x: &'a [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") ) -> Self Converts to this type from the input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#235-239) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-From%3CProperCrtUint%3CF%3E%3E-for-CRTInteger%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") > for [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#236-238) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.from-1) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (x: [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") ) -> Self Converts to this type from the input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#405-424) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-Selectable%3CF%2C%20CRTInteger%3CF%3E%3E-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl<'range, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , Fp: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") \> [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip") <'range, F, Fp> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#406-414) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.select) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") ,     b: [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#416-423) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.select_by_indicator) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#synthetic-implementations) ----------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-RefUnwindSafe-for-CRTInteger%3CF%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-Send-for-CRTInteger%3CF%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-Sync-for-CRTInteger%3CF%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-Unpin-for-CRTInteger%3CF%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-UnwindSafe-for-CRTInteger%3CF%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#blanket-implementations) ------------------------------------------------------------------------------------------------------------------------------------ [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-Any-for-CRTInteger%3CF%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-Borrow%3CT%3E-for-CRTInteger%3CF%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-BorrowMut%3CT%3E-for-CRTInteger%3CF%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-Conv-for-CRTInteger%3CF%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-FmtForward-for-CRTInteger%3CF%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-From%3CT%3E-for-CRTInteger%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.from-3) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-Instrument-for-CRTInteger%3CF%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-Into%3CU%3E-for-CRTInteger%3CF%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-Pipe-for-CRTInteger%3CF%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-Pointable-for-CRTInteger%3CF%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-Same%3CT%3E-for-CRTInteger%3CF%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-CRTInteger%3CF%3E) ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for FCwhere     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Pt: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") ,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#454-462) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.select-1) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#464-473) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.select_by_indicator-1) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-Tap-for-CRTInteger%3CF%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-ToOwned-for-CRTInteger%3CF%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-TryConv-for-CRTInteger%3CF%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-TryFrom%3CU%3E-for-CRTInteger%3CF%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-TryInto%3CU%3E-for-CRTInteger%3CF%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-VZip%3CV%3E-for-CRTInteger%3CF%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#impl-WithSubscriber-for-CRTInteger%3CF%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # FixedCRTInteger in halo2_ecc::bigint - Rust Struct [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[FixedCRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#268-282) · [\[−\]](javascript:void(0) "collapse all docs") pub struct FixedCRTInteger { pub truncation: FixedOverflowInteger, pub value: BigUint, } Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#fields) ------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#structfield.truncation) `truncation: [FixedOverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html "struct halo2_ecc::bigint::FixedOverflowInteger") `[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#structfield.value) `value: [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint") ` Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#implementations) ------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#284-306) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-FixedCRTInteger%3CF%3E) ### impl [FixedCRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html "struct halo2_ecc::bigint::FixedCRTInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#285-287) #### pub fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.new) (truncation: [FixedOverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html "struct halo2_ecc::bigint::FixedOverflowInteger") , value: [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint") ) -> Self [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#291-294) #### pub fn [from\_native](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.from_native) (value: [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint") , num\_limbs: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) , limb\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> Self Input: a BigInteger `value`, Output: the `FixedCRTInteger` that represents the same value Can handle signs [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#296-305) #### pub fn [assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.assign) (     self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     limb\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ,     native\_modulus: &[BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint") ) -> [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#trait-implementations) ------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#267) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-Clone-for-FixedCRTInteger%3CF%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [FixedCRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html "struct halo2_ecc::bigint::FixedCRTInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#267) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [FixedCRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html "struct halo2_ecc::bigint::FixedCRTInteger") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#267) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-Debug-for-FixedCRTInteger%3CF%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [FixedCRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html "struct halo2_ecc::bigint::FixedCRTInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#267) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#synthetic-implementations) ---------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-RefUnwindSafe-for-FixedCRTInteger%3CF%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [FixedCRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html "struct halo2_ecc::bigint::FixedCRTInteger") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-Send-for-FixedCRTInteger%3CF%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [FixedCRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html "struct halo2_ecc::bigint::FixedCRTInteger") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-Sync-for-FixedCRTInteger%3CF%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [FixedCRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html "struct halo2_ecc::bigint::FixedCRTInteger") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-Unpin-for-FixedCRTInteger%3CF%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [FixedCRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html "struct halo2_ecc::bigint::FixedCRTInteger") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-UnwindSafe-for-FixedCRTInteger%3CF%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [FixedCRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html "struct halo2_ecc::bigint::FixedCRTInteger") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#blanket-implementations) ----------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-Any-for-FixedCRTInteger%3CF%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-Borrow%3CT%3E-for-FixedCRTInteger%3CF%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-BorrowMut%3CT%3E-for-FixedCRTInteger%3CF%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-Conv-for-FixedCRTInteger%3CF%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-FmtForward-for-FixedCRTInteger%3CF%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-From%3CT%3E-for-FixedCRTInteger%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-Instrument-for-FixedCRTInteger%3CF%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-Into%3CU%3E-for-FixedCRTInteger%3CF%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-Pipe-for-FixedCRTInteger%3CF%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-Pointable-for-FixedCRTInteger%3CF%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-Same%3CT%3E-for-FixedCRTInteger%3CF%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-FixedCRTInteger%3CF%3E) ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for FCwhere     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Pt: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") ,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#454-462) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.select) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#464-473) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.select_by_indicator) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-Tap-for-FixedCRTInteger%3CF%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-ToOwned-for-FixedCRTInteger%3CF%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-TryConv-for-FixedCRTInteger%3CF%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-TryFrom%3CU%3E-for-FixedCRTInteger%3CF%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-TryInto%3CU%3E-for-FixedCRTInteger%3CF%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-VZip%3CV%3E-for-FixedCRTInteger%3CF%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#impl-WithSubscriber-for-FixedCRTInteger%3CF%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # halo2_ecc::bigint - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#1-306) · [\[−\]](javascript:void(0) "collapse all docs") [Modules](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html#modules) ---------------------------------------------------------------------------------------- [add\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/add_no_carry/index.html "halo2_ecc::bigint::add_no_carry mod") [big\_is\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_equal/index.html "halo2_ecc::bigint::big_is_equal mod") [big\_is\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/index.html "halo2_ecc::bigint::big_is_zero mod") [big\_less\_than](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_less_than/index.html "halo2_ecc::bigint::big_less_than mod") [carry\_mod](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/carry_mod/index.html "halo2_ecc::bigint::carry_mod mod") [check\_carry\_mod\_to\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/check_carry_mod_to_zero/index.html "halo2_ecc::bigint::check_carry_mod_to_zero mod") [check\_carry\_to\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/check_carry_to_zero/index.html "halo2_ecc::bigint::check_carry_to_zero mod") [mul\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/mul_no_carry/index.html "halo2_ecc::bigint::mul_no_carry mod") [negative](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/negative/index.html "halo2_ecc::bigint::negative mod") [scalar\_mul\_and\_add\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_and_add_no_carry/index.html "halo2_ecc::bigint::scalar_mul_and_add_no_carry mod") [scalar\_mul\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_no_carry/index.html "halo2_ecc::bigint::scalar_mul_no_carry mod") [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select/index.html "halo2_ecc::bigint::select mod") [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select_by_indicator/index.html "halo2_ecc::bigint::select_by_indicator mod") [sub](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub/index.html "halo2_ecc::bigint::sub mod") [sub\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub_no_carry/index.html "halo2_ecc::bigint::sub_no_carry mod") [Structs](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html#structs) ---------------------------------------------------------------------------------------- [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "halo2_ecc::bigint::CRTInteger struct") [FixedCRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html "halo2_ecc::bigint::FixedCRTInteger struct") [FixedOverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html "halo2_ecc::bigint::FixedOverflowInteger struct") [OverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html "halo2_ecc::bigint::OverflowInteger struct") [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "halo2_ecc::bigint::ProperCrtUint struct") Safe wrapper for representing a BigUint as a [`CRTInteger`](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "CRTInteger") whose underlying BigUint value is in `[0, 2^t)` where `t = truncation.limbs.len() * limb_bits`. This struct guarantees that\ \ [ProperUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html "halo2_ecc::bigint::ProperUint struct")\ \ Safe wrapper around a BigUint represented as a vector of limbs in **little endian**. The underlying BigUint is represented by sumi limbs\[i\] \* 2limb\_bits \* i\ \ [Enums](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html#enums)\ \ ------------------------------------------------------------------------------------\ \ [BigIntStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html "halo2_ecc::bigint::BigIntStrategy enum") --- # FixedOverflowInteger in halo2_ecc::bigint - Rust Struct [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[FixedOverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#116-118) · [\[−\]](javascript:void(0) "collapse all docs") #[repr(transparent)]pub struct FixedOverflowInteger { pub limbs: Vec, } Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#fields) ------------------------------------------------------------------------------------------------------------ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#structfield.limbs) `limbs: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") ` Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#implementations) ------------------------------------------------------------------------------------------------------------------------------ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#120-164) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-FixedOverflowInteger%3CF%3E) ### impl [FixedOverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html "struct halo2_ecc::bigint::FixedOverflowInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#121-123) #### pub fn [construct](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.construct) (limbs: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") ) -> Self [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#128-131) #### pub fn [from\_native](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.from_native) (value: &[BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint") , num\_limbs: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) , limb\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> Self Input: a BigInteger `value`, Output: the `FixedOverflowInteger` that represents the same value Can handle signs Note the representation of the integer will be in proper (no overflow) format, if signs are interpretted correctly [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#133-138) #### pub fn [to\_bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.to_bigint) (&self, limb\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#140-143) #### pub fn [assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.assign) (self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ) -> [ProperUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html "struct halo2_ecc::bigint::ProperUint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#146-163) #### pub fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.select_by_indicator) (     gate: &impl [GateInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html "trait halo2_base::gates::flex_gate::GateInstructions") ,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &[\[Self\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) ,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \],     limb\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [OverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html "struct halo2_ecc::bigint::OverflowInteger") only use case is when coeffs has only a single 1, rest are 0 Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#trait-implementations) ------------------------------------------------------------------------------------------------------------------------------------------ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#115) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-Clone-for-FixedOverflowInteger%3CF%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [FixedOverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html "struct halo2_ecc::bigint::FixedOverflowInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#115) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [FixedOverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html "struct halo2_ecc::bigint::FixedOverflowInteger") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#115) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-Debug-for-FixedOverflowInteger%3CF%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [FixedOverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html "struct halo2_ecc::bigint::FixedOverflowInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#115) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#synthetic-implementations) --------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-RefUnwindSafe-for-FixedOverflowInteger%3CF%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [FixedOverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html "struct halo2_ecc::bigint::FixedOverflowInteger") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-Send-for-FixedOverflowInteger%3CF%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [FixedOverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html "struct halo2_ecc::bigint::FixedOverflowInteger") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-Sync-for-FixedOverflowInteger%3CF%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [FixedOverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html "struct halo2_ecc::bigint::FixedOverflowInteger") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-Unpin-for-FixedOverflowInteger%3CF%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [FixedOverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html "struct halo2_ecc::bigint::FixedOverflowInteger") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-UnwindSafe-for-FixedOverflowInteger%3CF%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [FixedOverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html "struct halo2_ecc::bigint::FixedOverflowInteger") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#blanket-implementations) ---------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-Any-for-FixedOverflowInteger%3CF%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-Borrow%3CT%3E-for-FixedOverflowInteger%3CF%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-BorrowMut%3CT%3E-for-FixedOverflowInteger%3CF%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-Conv-for-FixedOverflowInteger%3CF%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-FmtForward-for-FixedOverflowInteger%3CF%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-From%3CT%3E-for-FixedOverflowInteger%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-Instrument-for-FixedOverflowInteger%3CF%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-Into%3CU%3E-for-FixedOverflowInteger%3CF%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-Pipe-for-FixedOverflowInteger%3CF%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-Pointable-for-FixedOverflowInteger%3CF%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-Same%3CT%3E-for-FixedOverflowInteger%3CF%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-FixedOverflowInteger%3CF%3E) ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for FCwhere     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Pt: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") ,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#454-462) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.select) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#464-473) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.select_by_indicator-1) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-Tap-for-FixedOverflowInteger%3CF%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-ToOwned-for-FixedOverflowInteger%3CF%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-TryConv-for-FixedOverflowInteger%3CF%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-TryFrom%3CU%3E-for-FixedOverflowInteger%3CF%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-TryInto%3CU%3E-for-FixedOverflowInteger%3CF%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-VZip%3CV%3E-for-FixedOverflowInteger%3CF%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#impl-WithSubscriber-for-FixedOverflowInteger%3CF%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # zkevm_keccak - Rust Crate [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/lib.rs.html#1-11) · [\[−\]](javascript:void(0) "collapse all docs") Expand description The zkEVM keccak circuit implementation, with some minor modifications Credit goes to https://github.com/privacy-scaling-explorations/zkevm-circuits/tree/main/zkevm-circuits/src/keccak\_circuit [Re-exports](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html#reexports) ----------------------------------------------------------------------------------------- `pub use keccak_packed_multi::[KeccakCircuitConfig](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html "struct zkevm_keccak::keccak_packed_multi::KeccakCircuitConfig") as KeccakConfig;` [Modules](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html#modules) ------------------------------------------------------------------------------------ [keccak\_packed\_multi](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/index.html "zkevm_keccak::keccak_packed_multi mod") Keccak packed multi [util](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html "zkevm_keccak::util mod") Util Utility traits, functions used in the crate. [Macros](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html#macros) ---------------------------------------------------------------------------------- [address](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/macro.address.html "zkevm_keccak::address macro") Create an [`Address`](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Address.html "Address") from a hex string. Panics on invalid input. [impl\_expr](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/macro.impl_expr.html "zkevm_keccak::impl_expr macro") Implementation trait `Expr` for type able to be casted to u64 [word](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/macro.word.html "zkevm_keccak::word macro") Create a [`Word`](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Word.html "Word") from a hex string. Panics on invalid input. [word\_map](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/macro.word_map.html "zkevm_keccak::word_map macro") Create a [`Word`](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Word.html "Word") to [`Word`](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Word.html "Word") HashMap from pairs of hex strings. Panics on invalid input. --- # halo2_ecc::ecc - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#1-1204) · [\[−\]](javascript:void(0) "collapse all docs") [Modules](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html#modules) ------------------------------------------------------------------------------------- [ecdsa](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/ecdsa/index.html "halo2_ecc::ecc::ecdsa mod") [fixed\_base](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fixed_base/index.html "halo2_ecc::ecc::fixed_base mod") [pippenger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/pippenger/index.html "halo2_ecc::ecc::pippenger mod") [Structs](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html#structs) ------------------------------------------------------------------------------------- [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "halo2_ecc::ecc::EcPoint struct") [EccChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html "halo2_ecc::ecc::EccChip struct") [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "halo2_ecc::ecc::StrictEcPoint struct") An elliptic curve point where it is easy to compare the x-coordinate of two points [Enums](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html#enums) --------------------------------------------------------------------------------- [ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "halo2_ecc::ecc::ComparableEcPoint enum") An elliptic curve point where the x-coordinate has already been constrained to be reduced or not. In the reduced case one can more optimally compare equality of x-coordinates. [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html#functions) ----------------------------------------------------------------------------------------- [check\_is\_on\_curve](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.check_is_on_curve.html "halo2_ecc::ecc::check_is_on_curve fn") Checks that `P` is indeed a point on the elliptic curve `C`. [ec\_add\_unequal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_add_unequal.html "halo2_ecc::ecc::ec_add_unequal fn") If `is_strict = true`, then this function constrains that `P.x != Q.x`. If you are calling this with `is_strict = false`, you must ensure that `P.x != Q.x` by some external logic (such as a mathematical theorem). [ec\_double](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_double.html "halo2_ecc::ecc::ec_double fn") Assumptions [ec\_double\_and\_add\_unequal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_double_and_add_unequal.html "halo2_ecc::ecc::ec_double_and_add_unequal fn") Implements: computing 2P + Q = P + Q + P for P = (x0, y0), Q = (x1, y1) [ec\_select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_select.html "halo2_ecc::ecc::ec_select fn") [ec\_select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_select_by_indicator.html "halo2_ecc::ecc::ec_select_by_indicator fn") [ec\_select\_from\_bits](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_select_from_bits.html "halo2_ecc::ecc::ec_select_from_bits fn") [ec\_sub\_strict](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_sub_strict.html "halo2_ecc::ecc::ec_sub_strict fn") Constrains `P != -Q` but allows `P == Q`, in which case output is (0,0). For Weierstrass curves only. [ec\_sub\_unequal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_sub_unequal.html "halo2_ecc::ecc::ec_sub_unequal fn") If `is_strict = true`, then this function constrains that `P.x != Q.x`. If you are calling this with `is_strict = false`, you must ensure that `P.x != Q.x` by some external logic (such as a mathematical theorem). [get\_naf](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.get_naf.html "halo2_ecc::ecc::get_naf fn") [into\_strict\_point](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.into_strict_point.html "halo2_ecc::ecc::into_strict_point fn") [load\_random\_point](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.load_random_point.html "halo2_ecc::ecc::load_random_point fn") [multi\_scalar\_multiply](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.multi_scalar_multiply.html "halo2_ecc::ecc::multi_scalar_multiply fn") Assumptions [scalar\_multiply](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.scalar_multiply.html "halo2_ecc::ecc::scalar_multiply fn") Computes `[scalar] * P` on short Weierstrass curve `y^2 = x^3 + b` [strict\_ec\_select\_from\_bits](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.strict_ec_select_from_bits.html "halo2_ecc::ecc::strict_ec_select_from_bits fn") [Type Definitions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html#types) -------------------------------------------------------------------------------------------- [BaseFieldEccChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/type.BaseFieldEccChip.html "halo2_ecc::ecc::BaseFieldEccChip type") --- # List of all items in this crate List of all items ================= ### Structs * [bigint::CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html) * [bigint::FixedCRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedCRTInteger.html) * [bigint::FixedOverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.FixedOverflowInteger.html) * [bigint::OverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html) * [bigint::ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html) * [bigint::ProperUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html) * [bn254::pairing::PairingChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html) * [ecc::EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html) * [ecc::EccChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html) * [ecc::StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html) * [fields::fp12::Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html) * [fields::fp2::Fp2Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html) * [fields::fp::FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html) * [fields::fp::Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html) * [fields::vector::FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html) * [fields::vector::FieldVectorChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html) ### Enums * [bigint::BigIntStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html) * [ecc::ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html) * [fields::FpStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html) ### Traits * [fields::FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html) * [fields::FieldExtConstructor](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html) * [fields::PrimeFieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html) * [fields::Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html) ### Macros * [impl\_field\_ext\_chip\_common](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/macro.impl_field_ext_chip_common.html) ### Functions * [bigint::add\_no\_carry::assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/add_no_carry/fn.assign.html) * [bigint::add\_no\_carry::crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/add_no_carry/fn.crt.html) * [bigint::big\_is\_equal::assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_equal/fn.assign.html) * [bigint::big\_is\_zero::assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/fn.assign.html) * [bigint::big\_is\_zero::crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/fn.crt.html) * [bigint::big\_is\_zero::positive](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/fn.positive.html) * [bigint::big\_less\_than::assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_less_than/fn.assign.html) * [bigint::carry\_mod::crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/carry_mod/fn.crt.html) * [bigint::check\_carry\_mod\_to\_zero::crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/check_carry_mod_to_zero/fn.crt.html) * [bigint::check\_carry\_to\_zero::truncate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/check_carry_to_zero/fn.truncate.html) * [bigint::mul\_no\_carry::crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/mul_no_carry/fn.crt.html) * [bigint::mul\_no\_carry::truncate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/mul_no_carry/fn.truncate.html) * [bigint::negative::assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/negative/fn.assign.html) * [bigint::scalar\_mul\_and\_add\_no\_carry::assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_and_add_no_carry/fn.assign.html) * [bigint::scalar\_mul\_and\_add\_no\_carry::crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_and_add_no_carry/fn.crt.html) * [bigint::scalar\_mul\_no\_carry::assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_no_carry/fn.assign.html) * [bigint::scalar\_mul\_no\_carry::crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_no_carry/fn.crt.html) * [bigint::select::assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select/fn.assign.html) * [bigint::select::crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select/fn.crt.html) * [bigint::select\_by\_indicator::assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select_by_indicator/fn.assign.html) * [bigint::select\_by\_indicator::crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select_by_indicator/fn.crt.html) * [bigint::sub::assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub/fn.assign.html) * [bigint::sub::crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub/fn.crt.html) * [bigint::sub\_no\_carry::assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub_no_carry/fn.assign.html) * [bigint::sub\_no\_carry::crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub_no_carry/fn.crt.html) * [bn254::pairing::fp12\_multiply\_with\_line\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.fp12_multiply_with_line_equal.html) * [bn254::pairing::fp12\_multiply\_with\_line\_unequal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.fp12_multiply_with_line_unequal.html) * [bn254::pairing::miller\_loop\_BN](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.miller_loop_BN.html) * [bn254::pairing::multi\_miller\_loop\_BN](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.multi_miller_loop_BN.html) * [bn254::pairing::neg\_twisted\_frobenius](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.neg_twisted_frobenius.html) * [bn254::pairing::sparse\_fp12\_multiply](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.sparse_fp12_multiply.html) * [bn254::pairing::sparse\_line\_function\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.sparse_line_function_equal.html) * [bn254::pairing::sparse\_line\_function\_unequal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.sparse_line_function_unequal.html) * [bn254::pairing::twisted\_frobenius](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.twisted_frobenius.html) * [ecc::check\_is\_on\_curve](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.check_is_on_curve.html) * [ecc::ec\_add\_unequal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_add_unequal.html) * [ecc::ec\_double](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_double.html) * [ecc::ec\_double\_and\_add\_unequal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_double_and_add_unequal.html) * [ecc::ec\_select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_select.html) * [ecc::ec\_select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_select_by_indicator.html) * [ecc::ec\_select\_from\_bits](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_select_from_bits.html) * [ecc::ec\_sub\_strict](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_sub_strict.html) * [ecc::ec\_sub\_unequal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_sub_unequal.html) * [ecc::ecdsa::ecdsa\_verify\_no\_pubkey\_check](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/ecdsa/fn.ecdsa_verify_no_pubkey_check.html) * [ecc::fixed\_base::msm\_par](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fixed_base/fn.msm_par.html) * [ecc::fixed\_base::scalar\_multiply](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fixed_base/fn.scalar_multiply.html) * [ecc::get\_naf](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.get_naf.html) * [ecc::into\_strict\_point](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.into_strict_point.html) * [ecc::load\_random\_point](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.load_random_point.html) * [ecc::multi\_scalar\_multiply](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.multi_scalar_multiply.html) * [ecc::pippenger::multi\_exp\_par](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/pippenger/fn.multi_exp_par.html) * [ecc::scalar\_multiply](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.scalar_multiply.html) * [ecc::strict\_ec\_select\_from\_bits](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.strict_ec_select_from_bits.html) * [fields::fp12::mul\_no\_carry\_w6](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/fn.mul_no_carry_w6.html) ### Type Definitions * [bn254::Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp12Chip.html) * [bn254::Fp2Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp2Chip.html) * [bn254::FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FpChip.html) * [bn254::FpPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FpPoint.html) * [bn254::FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html) * [ecc::BaseFieldEccChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/type.BaseFieldEccChip.html) * [fields::fp::BaseFieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/type.BaseFieldChip.html) * [fields::fp::FpConfig](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/type.FpConfig.html) * [secp256k1::FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/type.FpChip.html) * [secp256k1::FqChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/type.FqChip.html) * [secp256k1::Secp256k1Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/type.Secp256k1Chip.html) ### Trait Aliases * [fields::PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html) ### Constants * [secp256k1::SECP\_B](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/constant.SECP_B.html) --- # halo2_ecc::bigint::add_no_carry - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[add\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/add_no_carry/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ==================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/add_no_carry.rs.html#1-37) · [\[−\]](javascript:void(0) "collapse all docs") [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/add_no_carry/index.html#functions) --------------------------------------------------------------------------------------------------------- [assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/add_no_carry/fn.assign.html "halo2_ecc::bigint::add_no_carry::assign fn") Assumptions [crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/add_no_carry/fn.crt.html "halo2_ecc::bigint::add_no_carry::crt fn") Assumptions --- # StrictEcPoint in halo2_ecc::ecc - Rust Struct [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#61-65) · [\[−\]](javascript:void(0) "collapse all docs") pub struct StrictEcPoint> { pub x: FC::ReducedFieldPoint, pub y: FC::FieldPoint, /* private fields */ } Expand description An elliptic curve point where it is easy to compare the x-coordinate of two points Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#fields) -------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#structfield.x) `x: FC::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") `[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#structfield.y) `y: FC::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ` Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#implementations) -------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#67-71) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-StrictEcPoint%3CF%2C%20FC%3E) ### impl> [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#68-70) #### pub fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.new) (x: FC::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") , y: FC::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ) -> Self Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#trait-implementations) -------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#60) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-Clone-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl> [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") where     FC::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") : [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") ,     FC::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") : [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#60) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#60) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-Debug-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl> [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") where     FC::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") : [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") ,     FC::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") : [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#60) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#109-115) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-From%3C%26%27a%20StrictEcPoint%3CF%2C%20FC%3E%3E-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl<'a, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FC: [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") > [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&'a [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") > for [ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#112-114) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.from-3) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (pt: &'a [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") ) -> Self Converts to this type from the input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#79-85) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-From%3C%26%27a%20StrictEcPoint%3CF%2C%20FC%3E%3E-for-EcPoint%3CF%2C%20FC%3A%3AFieldPoint%3E) ### impl<'a, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FC: [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") > [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&'a [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") > for [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#82-84) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.from-1) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: &'a [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") ) -> Self Converts to this type from the input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#95-99) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-From%3CStrictEcPoint%3CF%2C%20FC%3E%3E-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") > for [ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#96-98) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.from-2) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (pt: [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") ) -> Self Converts to this type from the input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#73-77) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-From%3CStrictEcPoint%3CF%2C%20FC%3E%3E-for-EcPoint%3CF%2C%20FC%3A%3AFieldPoint%3E) ### impl> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") > for [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#74-76) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") ) -> Self Converts to this type from the input type. Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#synthetic-implementations) ----------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-RefUnwindSafe-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") ,     >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") : [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") ,     >::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") : [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-Send-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-Sync-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-Unpin-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") ,     >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") : [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") ,     >::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") : [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-UnwindSafe-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") ,     >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") : [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") ,     >::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") : [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#blanket-implementations) ------------------------------------------------------------------------------------------------------------------------------------ [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-Any-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-Borrow%3CT%3E-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-BorrowMut%3CT%3E-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-Conv-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-FmtForward-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-From%3CT%3E-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.from-4) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-Instrument-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-Into%3CU%3E-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-Pipe-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-Pointable-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-Same%3CT%3E-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for FCwhere     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Pt: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") ,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#454-462) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.select) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#464-473) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.select_by_indicator) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-Tap-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-ToOwned-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-TryConv-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-TryFrom%3CU%3E-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-TryInto%3CU%3E-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-VZip%3CV%3E-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#impl-WithSubscriber-for-StrictEcPoint%3CF%2C%20FC%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # halo2_ecc::bn254::final_exp - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bn254](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html) ::[final\_exp](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/final_exp/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#1-397) · [\[−\]](javascript:void(0) "collapse all docs") --- # AssignedValue in halo2_base - Rust Struct [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#110-116) · [\[−\]](javascript:void(0) "collapse all docs") pub struct AssignedValue { pub value: Assigned, pub cell: Option, } Expand description Pointer containing cell value and location within [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") . Note: Performs a copy of the value, should only be used when you are about to assign the value again elsewhere. Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#fields) ----------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#structfield.value) `value: Assigned` Value of the cell. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#structfield.cell) `cell: [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") <[ContextCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html "struct halo2_base::ContextCell") >` [ContextCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html "ContextCell") pointer to the cell the value is assigned to within an advice column of a [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") . Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#implementations) ----------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#118-128) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-AssignedValue%3CF%3E) ### impl [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#122-127) #### pub fn [value](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.value) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) F Returns an immutable reference to the underlying value of an AssignedValue. Panics if the AssignedValue is of type WitnessFraction. Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#trait-implementations) ----------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#109) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-Clone-for-AssignedValue%3CF%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#109) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#109) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-Debug-for-AssignedValue%3CF%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#109) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#74-79) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-From%3CAssignedValue%3CF%3E%3E-for-QuantumCell%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") > for [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#76-78) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> Self Converts an [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "AssignedValue") into a [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") of \[type Existing(AssignedValue)\] [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#109) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-Copy-for-AssignedValue%3CF%3E) ### impl [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") for [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#synthetic-implementations) -------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-RefUnwindSafe-for-AssignedValue%3CF%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-Send-for-AssignedValue%3CF%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-Sync-for-AssignedValue%3CF%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-Unpin-for-AssignedValue%3CF%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-UnwindSafe-for-AssignedValue%3CF%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#blanket-implementations) --------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-Any-for-AssignedValue%3CF%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-Borrow%3CT%3E-for-AssignedValue%3CF%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-BorrowMut%3CT%3E-for-AssignedValue%3CF%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-Conv-for-AssignedValue%3CF%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-FmtForward-for-AssignedValue%3CF%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-From%3CT%3E-for-AssignedValue%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.from-1) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-Instrument-for-AssignedValue%3CF%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-Into%3CU%3E-for-AssignedValue%3CF%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-Pipe-for-AssignedValue%3CF%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-Pointable-for-AssignedValue%3CF%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-Same%3CT%3E-for-AssignedValue%3CF%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-Tap-for-AssignedValue%3CF%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-ToOwned-for-AssignedValue%3CF%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-TryConv-for-AssignedValue%3CF%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-TryFrom%3CU%3E-for-AssignedValue%3CF%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-TryInto%3CU%3E-for-AssignedValue%3CF%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-VZip%3CV%3E-for-AssignedValue%3CF%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#impl-WithSubscriber-for-AssignedValue%3CF%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # halo2_ecc::bigint::big_is_equal - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[big\_is\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_equal/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ==================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/big_is_equal.rs.html#1-29) · [\[−\]](javascript:void(0) "collapse all docs") [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_equal/index.html#functions) --------------------------------------------------------------------------------------------------------- [assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_equal/fn.assign.html "halo2_ecc::bigint::big_is_equal::assign fn") Given [`ProperUint`](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html "ProperUint") s `a` and `b` with the same number of limbs, returns whether `a == b`. --- # Fp12Chip in halo2_ecc::fields::fp12 - Rust Struct [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html) ::[fp12](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/index.html) ::[Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ==================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#20-23) · [\[−\]](javascript:void(0) "collapse all docs") pub struct Fp12Chip<'a, F: PrimeField, FpChip: FieldChip, Fp12, const XI_0: i64>(pub FieldVectorChip<'a, F, FpChip>, _); Expand description Represent Fp12 point as FqPoint with degree = 12 `Fp12 = Fp2[w] / (w^6 - u - xi)` This implementation assumes p = 3 (mod 4) in order for the polynomial u^2 + 1 to be irreducible over Fp; i.e., in order for -1 to not be a square (quadratic residue) in Fp This means we store an Fp12 point as `\sum_{i = 0}^6 (a_{i0} + a_{i1} * u) * w^i` This is encoded in an FqPoint of degree 12 as `(a_{00}, ..., a_{50}, a_{01}, ..., a_{51})` Tuple Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#fields) ----------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#structfield.0) `0: [FieldVectorChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html "struct halo2_ecc::fields::vector::FieldVectorChip") <'a, F, FpChip>` Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#implementations) ----------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#25-90) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl<'a, F, FpChip, Fp12, const XI\_0: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) \> [Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html "struct halo2_ecc::fields::fp12::Fp12Chip") <'a, F, FpChip, Fp12, XI\_0>where     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     FpChip: [PrimeFieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html "trait halo2_ecc::fields::PrimeFieldChip") ,     FpChip::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") : [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Fp12: Field, [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#33-40) #### pub fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.new) (fp\_chip: [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) FpChip) -> Self User must construct an `FpChip` first using a config. This is intended so everything shares a single `FlexGateChip`, which is needed for the column allocation to work. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#42-44) #### pub fn [fp\_chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.fp_chip) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) FpChip [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#46-72) #### pub fn [fp2\_mul\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.fp2_mul_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     fp12\_pt: [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") ,     fp2\_pt: [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") ) -> [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#75-89) #### pub fn [conjugate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.conjugate) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") ) -> [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#15-397) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-Fp12Chip%3C%27chip%2C%20F%2C%20FpChip%3C%27chip%2C%20F%2C%20Fq%3E%2C%20Fq12%2C%209%3E) ### impl<'chip, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") \> [Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html "struct halo2_ecc::fields::fp12::Fp12Chip") <'chip, F, [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip") <'chip, F, Fq>, Fq12, 9> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#18-63) #### pub fn [frobenius\_map](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.frobenius_map) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &>::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ,     power: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#68-98) #### pub fn [pow](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.pow) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &>::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ,     exp: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) \> ) -> >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ##### [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#assumptions) * `a` is nonzero field point [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#110-117) #### pub fn [cyclotomic\_compress](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.cyclotomic_compress) (&self, a: &[FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint") ) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint") > in = g0 + g2 w + g4 w^2 + g1 w^3 + g3 w^4 + g5 w^5 where g\_i = g\_i0 + g\_i1 \* u are elements of Fp2 out = Compress(in) = \[ g2, g3, g4, g5 \] [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#131-202) #### pub fn [cyclotomic\_decompress](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.cyclotomic_decompress) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     compression: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint") > ) -> [FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint") Input: * `compression = [g2, g3, g4, g5]` where g\_i are proper elements of Fp2 Output: * `Decompress(compression) = g0 + g2 w + g4 w^2 + g1 w^3 + g3 w^4 + g5 w^5` where * All elements of output are proper elements of Fp2 and: c = XI0 + u if g2 != 0: g1 = (g5^2 \* c + 3 g4^2 - 2 g3)/(4g2) g0 = (2 g1^2 + g2 \* g5 - 3 g3\*g4) \* c + 1 if g2 = 0: g1 = (2 g4 \* g5)/g3 g0 = (2 g1^2 - 3 g3 \* g4) \* c + 1 [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#216-263) #### pub fn [cyclotomic\_square](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.cyclotomic_square) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     compression: &\[[FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint")\ \] ) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint") > [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#268-301) #### pub fn [cyclotomic\_pow](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.cyclotomic_pow) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint") ,     exp: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) \> ) -> [FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint") ##### [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#assumptions-1) * `a` is a nonzero element in the cyclotomic subgroup [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#305-370) #### pub fn [hard\_part\_BN](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.hard_part_BN) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     m: >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ) -> >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#375-385) #### pub fn [easy\_part](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.easy_part) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ) -> >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ##### [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#assumptions-2) * `a` is nonzero field point [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#388-396) #### pub fn [final\_exp](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.final_exp) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ) -> >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#trait-implementations) ----------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#19) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-Clone-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl<'a, F: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") + [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FpChip: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") + [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") , Fp12: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , const XI\_0: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) \> [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html "struct halo2_ecc::fields::fp12::Fp12Chip") <'a, F, FpChip, Fp12, XI\_0> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#19) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html "struct halo2_ecc::fields::fp12::Fp12Chip") <'a, F, FpChip, Fp12, XI\_0> Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#19) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-Debug-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl<'a, F: [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") + [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FpChip: [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") + [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") , Fp12: [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") , const XI\_0: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) \> [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html "struct halo2_ecc::fields::fp12::Fp12Chip") <'a, F, FpChip, Fp12, XI\_0> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#19) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#113-216) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-FieldChip%3CF%3E-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl<'a, F, FpChip, Fp12, const XI\_0: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) \> [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") for [Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html "struct halo2_ecc::fields::fp12::Fp12Chip") <'a, F, FpChip, Fp12, XI\_0>where     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     FpChip: [PrimeFieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html "trait halo2_ecc::fields::PrimeFieldChip") ,     FpChip::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") : [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Fp12: Field + [FieldExtConstructor](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html "trait halo2_ecc::fields::FieldExtConstructor") ,     [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") : [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") >,     [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") : [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") >, [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#122) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#associatedconstant.PRIME_FIELD_NUM_BITS) #### const [PRIME\_FIELD\_NUM\_BITS](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedconstant.PRIME_FIELD_NUM_BITS) : [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) = ::NUM\_BITS [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#associatedtype.UnsafeFieldPoint) #### type [UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint) = [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") <>::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") \> A representation of a field element that is used for intermediate computations. The representation can have “overflows” (e.g., overflow limbs or negative limbs). [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#associatedtype.FieldPoint) #### type [FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint) = [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") <>::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") \> The “proper” representation of a field element. Allowed to be a non-unique representation of a field element (e.g., can be greater than modulus) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#associatedtype.ReducedFieldPoint) #### type [ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint) = [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") <>::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") \> A proper representation of field elements that guarantees a unique representation of each field element. Typically this means Uints that are less than the modulus. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#associatedtype.FieldType) #### type [FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType) = Fp12 A type implementing `Field` trait to help with witness generation (for example with inverse) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#associatedtype.RangeChip) #### type [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.RangeChip) = >::[RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.RangeChip "type halo2_ecc::fields::FieldChip::RangeChip") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#129-133) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.get_assigned_value) #### fn [get\_assigned\_value](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.get_assigned_value) (&self, x: &Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") ) -> Fp12 [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#136-213) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.mul_no_carry) #### fn [mul\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.mul_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.native_modulus) #### fn [native\_modulus](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.native_modulus) (&self) -> &[BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.range) #### fn [range](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.range) (&self) -> &Self::[RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.RangeChip "type halo2_ecc::fields::FieldChip::RangeChip") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.limb_bits) #### fn [limb\_bits](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.limb_bits) (&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.load_private) #### fn [load\_private](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.load_private) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     fe: Self::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Assigns `fe` as private witness. Note that the witness may **not** be constrained to be a unique representation of the field element `fe`. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.load_constant) #### fn [load\_constant](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.load_constant) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     fe: Self::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Assigns `fe` as constant. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.add_no_carry) #### fn [add\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.add_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.add_constant_no_carry) #### fn [add\_constant\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.add_constant_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     c: Self::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") ) -> Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") output: `a + c` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.sub_no_carry) #### fn [sub\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.sub_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.negate) #### fn [negate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.negate) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , a: Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.scalar_mul_no_carry) #### fn [scalar\_mul\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.scalar_mul_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     c: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) ) -> Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") a \* c [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.scalar_mul_and_add_no_carry) #### fn [scalar\_mul\_and\_add\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.scalar_mul_and_add_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     c: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) ) -> Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") a \* c + b [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.check_carry_mod_to_zero) #### fn [check\_carry\_mod\_to\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.check_carry_mod_to_zero) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , a: Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") ) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.carry_mod) #### fn [carry\_mod](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.carry_mod) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.range_check) #### fn [range\_check](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.range_check) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     max\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.enforce_less_than) #### fn [enforce\_less\_than](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.enforce_less_than) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ) -> Self::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") Constrains that `a` is a reduced representation and returns the wrapped `a`. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.is_soft_zero) #### fn [is\_soft\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.is_soft_zero) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.is_soft_nonzero) #### fn [is\_soft\_nonzero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.is_soft_nonzero) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.is_zero) #### fn [is\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.is_zero) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.is_equal_unenforced) #### fn [is\_equal\_unenforced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.is_equal_unenforced) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: Self::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") ,     b: Self::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#215) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.assert_equal) #### fn [assert\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.assert_equal) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#54-56) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.gate) #### fn [gate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.gate) (&self) -> &>::[Gate](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#associatedtype.Gate "type halo2_base::gates::range::RangeInstructions::Gate") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#66-73) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.load_private_reduced) #### fn [load\_private\_reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.load_private_reduced) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     fe: Self::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") ) -> Self::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") Assigns `fe` as private witness and contrains the witness to be in reduced form. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#182-192) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.is_equal) #### fn [is\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.is_equal) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#195-203) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.mul) #### fn [mul](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.mul) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") If using `UnsafeFieldPoint`, make sure multiplication does not cause overflow. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#206-217) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.divide) #### fn [divide](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.divide) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Constrains that `b` is nonzero as a field element and then returns `a / b`. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#224-245) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.divide_unsafe) #### fn [divide\_unsafe](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.divide_unsafe) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Returns `a / b` without constraining `b` to be nonzero. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.divide_unsafe) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#248-259) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.neg_divide) #### fn [neg\_divide](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.neg_divide) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Constrains that `b` is nonzero as a field element and then returns `-a / b`. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#263-284) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.neg_divide_unsafe) #### fn [neg\_divide\_unsafe](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.neg_divide_unsafe) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#19) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-Copy-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl<'a, F: [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") + [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FpChip: [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") + [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") , Fp12: [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") , const XI\_0: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) \> [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") for [Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html "struct halo2_ecc::fields::fp12::Fp12Chip") <'a, F, FpChip, Fp12, XI\_0> Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#synthetic-implementations) -------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-RefUnwindSafe-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl<'a, F, FpChip, Fp12, const XI\_0: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) \> [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html "struct halo2_ecc::fields::fp12::Fp12Chip") <'a, F, FpChip, Fp12, XI\_0>where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") ,     Fp12: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") ,     FpChip: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-Send-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl<'a, F, FpChip, Fp12, const XI\_0: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) \> [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html "struct halo2_ecc::fields::fp12::Fp12Chip") <'a, F, FpChip, Fp12, XI\_0>where     Fp12: [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-Sync-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl<'a, F, FpChip, Fp12, const XI\_0: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) \> [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html "struct halo2_ecc::fields::fp12::Fp12Chip") <'a, F, FpChip, Fp12, XI\_0>where     Fp12: [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-Unpin-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl<'a, F, FpChip, Fp12, const XI\_0: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) \> [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html "struct halo2_ecc::fields::fp12::Fp12Chip") <'a, F, FpChip, Fp12, XI\_0>where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") ,     Fp12: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-UnwindSafe-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl<'a, F, FpChip, Fp12, const XI\_0: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) \> [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html "struct halo2_ecc::fields::fp12::Fp12Chip") <'a, F, FpChip, Fp12, XI\_0>where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") ,     Fp12: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") ,     FpChip: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#blanket-implementations) --------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-Any-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-Borrow%3CT%3E-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-BorrowMut%3CT%3E-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-Conv-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-FmtForward-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-From%3CT%3E-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-Instrument-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-Into%3CU%3E-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-Pipe-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-Pointable-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-Same%3CT%3E-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for FCwhere     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Pt: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") ,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#454-462) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.select) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#464-473) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.select_by_indicator) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-Tap-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-ToOwned-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-TryConv-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-TryFrom%3CU%3E-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-TryInto%3CU%3E-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-VZip%3CV%3E-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#impl-WithSubscriber-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # halo2_base::safe_types - Rust Module [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[safe\_types](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#1-146) · [\[−\]](javascript:void(0) "collapse all docs") Expand description Module for SafeType which enforce value range and realted functions. [Re-exports](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/index.html#reexports) -------------------------------------------------------------------------------------------------- `pub use crate::gates::flex_gate::[GateInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html "trait halo2_base::gates::flex_gate::GateInstructions") ;` `pub use crate::gates::range::[RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "struct halo2_base::gates::range::RangeChip") ;` `pub use crate::gates::range::[RangeInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html "trait halo2_base::gates::range::RangeInstructions") ;` `pub use crate::utils::[ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html "trait halo2_base::utils::ScalarField") ;` `pub use crate::[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ;` `pub use crate::[Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ;` `pub use crate::[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") ;` `pub use crate::QuantumCell::[Constant](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") ;` `pub use crate::QuantumCell::[Existing](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") ;` `pub use crate::QuantumCell::[Witness](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") ;` [Structs](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/index.html#structs) --------------------------------------------------------------------------------------------- [SafeType](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html "halo2_base::safe_types::SafeType struct") SafeType’s goal is to avoid out-of-range undefined behavior. When building circuits, it’s common to use mulitple AssignedValue to represent a logical varaible. For example, we might want to represent a hash with 32 AssignedValue where each AssignedValue represents 1 byte. However, the range of AssignedValue is much larger than 1 byte(0~255). If a circuit takes 32 AssignedValue as inputs and some of them are actually greater than 255, there could be some undefined behaviors. SafeType gurantees the value range of its owned AssignedValue. So circuits don’t need to do any extra value checking if they take SafeType as inputs. TOTAL\_BITS is the number of total bits of this type. BYTES\_PER\_ELE is the number of bytes of each element. [SafeTypeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html "halo2_base::safe_types::SafeTypeChip struct") Chip for SafeType [Type Definitions](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/index.html#types) ---------------------------------------------------------------------------------------------------- [SafeBool](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeBool.html "halo2_base::safe_types::SafeBool type") SafeType for bool. [SafeBytes32](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeBytes32.html "halo2_base::safe_types::SafeBytes32 type") SafeType for bytes32. [SafeUint8](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeUint8.html "halo2_base::safe_types::SafeUint8 type") SafeType for uint8. [SafeUint16](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeUint16.html "halo2_base::safe_types::SafeUint16 type") SafeType for uint16. [SafeUint32](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeUint32.html "halo2_base::safe_types::SafeUint32 type") SafeType for uint32. [SafeUint64](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeUint64.html "halo2_base::safe_types::SafeUint64 type") SafeType for uint64. [SafeUint128](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeUint128.html "halo2_base::safe_types::SafeUint128 type") SafeType for uint128. [SafeUint256](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeUint256.html "halo2_base::safe_types::SafeUint256 type") SafeType for uint256. --- # halo2_ecc::bn254::pairing - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bn254](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html) ::[pairing](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ===================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#1-548) · [\[−\]](javascript:void(0) "collapse all docs") [Structs](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/index.html#structs) ----------------------------------------------------------------------------------------------- [PairingChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html "halo2_ecc::bn254::pairing::PairingChip struct") [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/index.html#functions) --------------------------------------------------------------------------------------------------- [fp12\_multiply\_with\_line\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.fp12_multiply_with_line_equal.html "halo2_ecc::bn254::pairing::fp12_multiply_with_line_equal fn") [fp12\_multiply\_with\_line\_unequal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.fp12_multiply_with_line_unequal.html "halo2_ecc::bn254::pairing::fp12_multiply_with_line_unequal fn") [miller\_loop\_BN](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.miller_loop_BN.html "halo2_ecc::bn254::pairing::miller_loop_BN fn") [multi\_miller\_loop\_BN](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.multi_miller_loop_BN.html "halo2_ecc::bn254::pairing::multi_miller_loop_BN fn") [neg\_twisted\_frobenius](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.neg_twisted_frobenius.html "halo2_ecc::bn254::pairing::neg_twisted_frobenius fn") [sparse\_fp12\_multiply](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.sparse_fp12_multiply.html "halo2_ecc::bn254::pairing::sparse_fp12_multiply fn") [sparse\_line\_function\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.sparse_line_function_equal.html "halo2_ecc::bn254::pairing::sparse_line_function_equal fn") [sparse\_line\_function\_unequal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.sparse_line_function_unequal.html "halo2_ecc::bn254::pairing::sparse_line_function_unequal fn") [twisted\_frobenius](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.twisted_frobenius.html "halo2_ecc::bn254::pairing::twisted_frobenius fn") --- # halo2_ecc::bigint::big_is_zero - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[big\_is\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/big_is_zero.rs.html#1-53) · [\[−\]](javascript:void(0) "collapse all docs") [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/index.html#functions) -------------------------------------------------------------------------------------------------------- [assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/fn.assign.html "halo2_ecc::bigint::big_is_zero::assign fn") Given ProperUint `a`, returns 1 iff every limb of `a` is zero. Returns 0 otherwise. [crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/fn.crt.html "halo2_ecc::bigint::big_is_zero::crt fn") Returns 0 or 1. Returns 1 iff the limbs of `a` are identically zero. This just calls [`assign`](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/fn.assign.html "assign") on the limbs. [positive](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/fn.positive.html "halo2_ecc::bigint::big_is_zero::positive fn") Assumptions --- # Context in halo2_base - Rust Struct [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ==================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#133-174) · [\[−\]](javascript:void(0) "collapse all docs") pub struct Context { pub context_id: usize, pub advice: Vec>, pub cells_to_lookup: Vec>, pub zero_cell: Option>, pub selector: Vec, pub advice_equality_constraints: Vec<(ContextCell, ContextCell)>, pub constant_equality_constraints: Vec<(F, ContextCell)>, /* private fields */ } Expand description Represents a single thread of an execution trace. * We keep the naming [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") for historical reasons. Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#fields) ----------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#structfield.context_id) `context_id: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ` Identifier to reference cells from this [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") . [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#structfield.advice) `advice: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") >` Single column of advice cells. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#structfield.cells_to_lookup) `cells_to_lookup: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") >` [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") tracking all cells that lookup is enabled for. * When there is more than 1 advice column all `advice` cells will be copied to a single lookup enabled column to perform lookups. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#structfield.zero_cell) `zero_cell: [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") >` Cell that represents the zero value as AssignedValue [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#structfield.selector) `selector: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) >` [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") representing the selector column of this [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") accompanying each `advice` column * Assumed to have the same length as `advice` [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#structfield.advice_equality_constraints) `advice_equality_constraints: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <([ContextCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html "struct halo2_base::ContextCell") , [ContextCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html "struct halo2_base::ContextCell") )>` A [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") tracking equality constraints between pairs of [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") `advice` cells. Assumes both `advice` cells are in the same [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") . [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#structfield.constant_equality_constraints) `constant_equality_constraints: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <(F, [ContextCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html "struct halo2_base::ContextCell") )>` A [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") tracking pairs equality constraints between Fixed values and [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") `advice` cells. Assumes the constant and `advice` cell are in the same [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") . Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#implementations) ----------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#176-416) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-Context%3CF%3E) ### impl [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#180-191) #### pub fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.new) (witness\_gen\_only: [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) , context\_id: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> Self Creates a new [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") with the given `context_id` and witness generation enabled/disabled by the `witness_gen_only` flag. * `witness_gen_only`: flag to determine whether public key generation or only witness generation is being performed. * `context_id`: identifier to reference advice cells from this [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") later. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#194-196) #### pub fn [witness\_gen\_only](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.witness_gen_only) (&self) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) Returns the `witness_gen_only` flag of the [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#200-228) #### pub fn [assign\_cell](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.assign_cell) (&mut self, input: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >) Pushes a [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") to the end of the `advice` column ([Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") of advice cells) in this [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") . * `input`: the cell to be assigned. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#231-239) #### pub fn [last](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.last) (&self) -> [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") > Returns the [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "AssignedValue") of the last cell in the `advice` column of [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") or [None](https://doc.rust-lang.org/nightly/core/option/enum.Option.html#variant.None "None") if `advice` is empty [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#246-256) #### pub fn [get](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.get) (&self, offset: [isize](https://doc.rust-lang.org/nightly/std/primitive.isize.html) ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Returns the [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "AssignedValue") of the cell at the given `offset` in the `advice` column of [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") * `offset`: the offset of the cell to be fetched * `offset` may be negative indexing from the end of the column (e.g., `-1` is the last cell) * Assumes `offset` is a valid index in `advice`; * `0` <= `offset` < `advice.len()` (or `advice.len() + offset >= 0` if `offset` is negative) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#262-266) #### pub fn [constrain\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.constrain_equal) (&mut self, a: &[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") , b: &[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) Creates an equality constraint between two `advice` cells. * `a`: the first `advice` cell to be constrained equal * `b`: the second `advice` cell to be constrained equal * Assumes both cells are `advice` cells [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#273-298) #### pub fn [assign\_region](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.assign_region) (     &mut self,     inputs: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     gate\_offsets: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") )where     Q: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >, Pushes multiple advice cells to the `advice` column of [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") and enables them by enabling the corresponding selector specified in `gate_offset`. * `inputs`: Iterator that specifies the cells to be assigned * `gate_offsets`: specifies relative offset from current position to enable selector for the gate (e.g., `0` is inputs\[0\]). * `offset` may be negative indexing from the end of the column (e.g., `-1` is the last previously assigned cell) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#308-318) #### pub fn [assign\_region\_last](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.assign_region_last) (     &mut self,     inputs: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     gate\_offsets: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") where     Q: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >, Pushes multiple advice cells to the `advice` column of [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") and enables them by enabling the corresponding selector specified in `gate_offset` and returns the last assigned cell. Assumes `gate_offsets` is the same length as `inputs` Returns the last assigned cell * `inputs`: Iterator that specifies the cells to be assigned * `gate_offsets`: specifies indices to enable selector for the gate; assume `gate_offsets` is sorted in increasing order * `offset` may be negative indexing from the end of the column (e.g., `-1` is the last cell) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#327-366) #### pub fn [assign\_region\_smart](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.assign_region_smart) (     &mut self,     inputs: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     gate\_offsets: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     equality\_offsets: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     external\_equality: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , [isize](https://doc.rust-lang.org/nightly/std/primitive.isize.html) )> )where     Q: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >, Pushes multiple advice cells to the `advice` column of [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") and enables them by enabling the corresponding selector specified in `gate_offset`. Allows for the specification of equality constraints between cells at `equality_offsets` within the `advice` column and external advice cells specified in `external_equality` (e.g, Fixed column). * `gate_offsets`: specifies indices to enable selector for the gate; * `offset` may be negative indexing from the end of the column (e.g., `-1` is the last cell) * `equality_offsets`: specifies pairs of indices to constrain equality * `external_equality`: specifies an existing cell to constrain equality with the cell at a certain index [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#370-385) #### pub fn [assign\_witnesses](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.assign_witnesses) (     &mut self,     witnesses: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") > Assigns a region of witness cells in an iterator and returns a [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") of assigned cells. * `witnesses`: Iterator that specifies the cells to be assigned [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#389-395) #### pub fn [load\_witness](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.load_witness) (&mut self, witness: F) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Assigns a witness value and returns the corresponding assigned cell. * `witness`: the witness value to be assigned [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#399-405) #### pub fn [load\_constant](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.load_constant) (&mut self, c: F) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Assigns a constant value and returns the corresponding assigned cell. * `c`: the constant value to be assigned [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#408-415) #### pub fn [load\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.load_zero) (&mut self) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Assigns the 0 value to a new cell or returns a previously assigned zero cell from `zero_cell`. Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#trait-implementations) ----------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#132) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-Clone-for-Context%3CF%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#132) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#132) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-Debug-for-Context%3CF%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#132) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#synthetic-implementations) -------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-RefUnwindSafe-for-Context%3CF%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-Send-for-Context%3CF%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-Sync-for-Context%3CF%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-Unpin-for-Context%3CF%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-UnwindSafe-for-Context%3CF%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#blanket-implementations) --------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-Any-for-Context%3CF%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-Borrow%3CT%3E-for-Context%3CF%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-BorrowMut%3CT%3E-for-Context%3CF%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-Conv-for-Context%3CF%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-FmtForward-for-Context%3CF%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-From%3CT%3E-for-Context%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-Instrument-for-Context%3CF%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-Into%3CU%3E-for-Context%3CF%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-Pipe-for-Context%3CF%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-Pointable-for-Context%3CF%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-Same%3CT%3E-for-Context%3CF%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-Tap-for-Context%3CF%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-ToOwned-for-Context%3CF%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-TryConv-for-Context%3CF%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-TryFrom%3CU%3E-for-Context%3CF%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-TryInto%3CU%3E-for-Context%3CF%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-VZip%3CV%3E-for-Context%3CF%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#impl-WithSubscriber-for-Context%3CF%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # Fp2Chip in halo2_ecc::fields::fp2 - Rust Struct [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html) ::[fp2](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/index.html) ::[Fp2Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =============================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#19-22) · [\[−\]](javascript:void(0) "collapse all docs") pub struct Fp2Chip<'a, F: PrimeField, FpChip: FieldChip, Fp2>(pub FieldVectorChip<'a, F, FpChip>, _); Expand description Represent Fp2 point as `FieldVector` with degree = 2 `Fp2 = Fp[u] / (u^2 + 1)` This implementation assumes p = 3 (mod 4) in order for the polynomial u^2 + 1 to be irreducible over Fp; i.e., in order for -1 to not be a square (quadratic residue) in Fp This means we store an Fp2 point as `a_0 + a_1 * u` where `a_0, a_1 in Fp` Tuple Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#fields) --------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#structfield.0) `0: [FieldVectorChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html "struct halo2_ecc::fields::vector::FieldVectorChip") <'a, F, FpChip>` Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#implementations) --------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#24-65) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl<'a, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FpChip: [PrimeFieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html "trait halo2_ecc::fields::PrimeFieldChip") , Fp2: Field> [Fp2Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html "struct halo2_ecc::fields::fp2::Fp2Chip") <'a, F, FpChip, Fp2>where     FpChip::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") : [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#29-36) #### pub fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.new) (fp\_chip: [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) FpChip) -> Self User must construct an `FpChip` first using a config. This is intended so everything shares a single `FlexGateChip`, which is needed for the column allocation to work. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#38-40) #### pub fn [fp\_chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.fp_chip) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) FpChip [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#42-52) #### pub fn [conjugate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.conjugate) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") ) -> [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#54-64) #### pub fn [neg\_conjugate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.neg_conjugate) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") ) -> [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#trait-implementations) --------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#18) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-Clone-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl<'a, F: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") + [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FpChip: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") + [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") , Fp2: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") \> [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [Fp2Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html "struct halo2_ecc::fields::fp2::Fp2Chip") <'a, F, FpChip, Fp2> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#18) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [Fp2Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html "struct halo2_ecc::fields::fp2::Fp2Chip") <'a, F, FpChip, Fp2> Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#18) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-Debug-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl<'a, F: [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") + [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FpChip: [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") + [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") , Fp2: [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") \> [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [Fp2Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html "struct halo2_ecc::fields::fp2::Fp2Chip") <'a, F, FpChip, Fp2> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#18) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#67-117) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-FieldChip%3CF%3E-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl<'a, F, FpChip, Fp2> [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") for [Fp2Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html "struct halo2_ecc::fields::fp2::Fp2Chip") <'a, F, FpChip, Fp2>where     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     FpChip::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") : [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     FpChip: [PrimeFieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html "trait halo2_ecc::fields::PrimeFieldChip") ,     Fp2: Field + [FieldExtConstructor](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html "trait halo2_ecc::fields::FieldExtConstructor") ,     [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") : [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") >,     [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") : [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") >, [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#76) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#associatedconstant.PRIME_FIELD_NUM_BITS) #### const [PRIME\_FIELD\_NUM\_BITS](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedconstant.PRIME_FIELD_NUM_BITS) : [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) = ::NUM\_BITS [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#associatedtype.UnsafeFieldPoint) #### type [UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint) = [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") <>::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") \> A representation of a field element that is used for intermediate computations. The representation can have “overflows” (e.g., overflow limbs or negative limbs). [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#associatedtype.FieldPoint) #### type [FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint) = [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") <>::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") \> The “proper” representation of a field element. Allowed to be a non-unique representation of a field element (e.g., can be greater than modulus) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#associatedtype.ReducedFieldPoint) #### type [ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint) = [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") <>::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") \> A proper representation of field elements that guarantees a unique representation of each field element. Typically this means Uints that are less than the modulus. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#associatedtype.FieldType) #### type [FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType) = Fp2 A type implementing `Field` trait to help with witness generation (for example with inverse) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#associatedtype.RangeChip) #### type [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.RangeChip) = >::[RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.RangeChip "type halo2_ecc::fields::FieldChip::RangeChip") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#83-88) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.get_assigned_value) #### fn [get\_assigned\_value](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.get_assigned_value) (&self, x: &Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") ) -> Fp2 [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#90-113) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.mul_no_carry) #### fn [mul\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.mul_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.native_modulus) #### fn [native\_modulus](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.native_modulus) (&self) -> &[BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.range) #### fn [range](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.range) (&self) -> &Self::[RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.RangeChip "type halo2_ecc::fields::FieldChip::RangeChip") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.limb_bits) #### fn [limb\_bits](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.limb_bits) (&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.load_private) #### fn [load\_private](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.load_private) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     fe: Self::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Assigns `fe` as private witness. Note that the witness may **not** be constrained to be a unique representation of the field element `fe`. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.load_constant) #### fn [load\_constant](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.load_constant) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     fe: Self::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Assigns `fe` as constant. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.add_no_carry) #### fn [add\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.add_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.add_constant_no_carry) #### fn [add\_constant\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.add_constant_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     c: Self::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") ) -> Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") output: `a + c` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.sub_no_carry) #### fn [sub\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.sub_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.negate) #### fn [negate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.negate) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , a: Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.scalar_mul_no_carry) #### fn [scalar\_mul\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.scalar_mul_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     c: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) ) -> Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") a \* c [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.scalar_mul_and_add_no_carry) #### fn [scalar\_mul\_and\_add\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.scalar_mul_and_add_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     c: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) ) -> Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") a \* c + b [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.check_carry_mod_to_zero) #### fn [check\_carry\_mod\_to\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.check_carry_mod_to_zero) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , a: Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") ) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.carry_mod) #### fn [carry\_mod](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.carry_mod) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.range_check) #### fn [range\_check](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.range_check) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     max\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.enforce_less_than) #### fn [enforce\_less\_than](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.enforce_less_than) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ) -> Self::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") Constrains that `a` is a reduced representation and returns the wrapped `a`. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.is_soft_zero) #### fn [is\_soft\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.is_soft_zero) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.is_soft_nonzero) #### fn [is\_soft\_nonzero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.is_soft_nonzero) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.is_zero) #### fn [is\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.is_zero) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.is_equal_unenforced) #### fn [is\_equal\_unenforced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.is_equal_unenforced) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: Self::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") ,     b: Self::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#116) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.assert_equal) #### fn [assert\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.assert_equal) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#54-56) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.gate) #### fn [gate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.gate) (&self) -> &>::[Gate](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#associatedtype.Gate "type halo2_base::gates::range::RangeInstructions::Gate") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#66-73) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.load_private_reduced) #### fn [load\_private\_reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.load_private_reduced) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     fe: Self::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") ) -> Self::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") Assigns `fe` as private witness and contrains the witness to be in reduced form. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#182-192) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.is_equal) #### fn [is\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.is_equal) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#195-203) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.mul) #### fn [mul](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.mul) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") If using `UnsafeFieldPoint`, make sure multiplication does not cause overflow. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#206-217) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.divide) #### fn [divide](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.divide) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Constrains that `b` is nonzero as a field element and then returns `a / b`. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#224-245) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.divide_unsafe) #### fn [divide\_unsafe](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.divide_unsafe) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Returns `a / b` without constraining `b` to be nonzero. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.divide_unsafe) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#248-259) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.neg_divide) #### fn [neg\_divide](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.neg_divide) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Constrains that `b` is nonzero as a field element and then returns `-a / b`. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#263-284) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.neg_divide_unsafe) #### fn [neg\_divide\_unsafe](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.neg_divide_unsafe) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#18) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-Copy-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl<'a, F: [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") + [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FpChip: [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") + [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") , Fp2: [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") \> [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") for [Fp2Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html "struct halo2_ecc::fields::fp2::Fp2Chip") <'a, F, FpChip, Fp2> Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#synthetic-implementations) ------------------------------------------------------------------------------------------------------------------------------------------ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-RefUnwindSafe-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl<'a, F, FpChip, Fp2> [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [Fp2Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html "struct halo2_ecc::fields::fp2::Fp2Chip") <'a, F, FpChip, Fp2>where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") ,     Fp2: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") ,     FpChip: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-Send-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl<'a, F, FpChip, Fp2> [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [Fp2Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html "struct halo2_ecc::fields::fp2::Fp2Chip") <'a, F, FpChip, Fp2>where     Fp2: [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-Sync-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl<'a, F, FpChip, Fp2> [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [Fp2Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html "struct halo2_ecc::fields::fp2::Fp2Chip") <'a, F, FpChip, Fp2>where     Fp2: [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-Unpin-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl<'a, F, FpChip, Fp2> [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [Fp2Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html "struct halo2_ecc::fields::fp2::Fp2Chip") <'a, F, FpChip, Fp2>where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") ,     Fp2: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-UnwindSafe-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl<'a, F, FpChip, Fp2> [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [Fp2Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html "struct halo2_ecc::fields::fp2::Fp2Chip") <'a, F, FpChip, Fp2>where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") ,     Fp2: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") ,     FpChip: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#blanket-implementations) ------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-Any-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-Borrow%3CT%3E-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-BorrowMut%3CT%3E-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-Conv-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-FmtForward-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-From%3CT%3E-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-Instrument-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-Into%3CU%3E-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-Pipe-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-Pointable-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-Same%3CT%3E-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for FCwhere     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Pt: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") ,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#454-462) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.select) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#464-473) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.select_by_indicator) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-Tap-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-ToOwned-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-TryConv-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-TryFrom%3CU%3E-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-TryInto%3CU%3E-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-VZip%3CV%3E-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#impl-WithSubscriber-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # halo2_base::utils - Rust Module [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =============================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#1-542) · [\[−\]](javascript:void(0) "collapse all docs") Expand description Utility functions for converting between different types of field elements. [Modules](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html#modules) ---------------------------------------------------------------------------------------- [fs](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fs/index.html "halo2_base::utils::fs mod") Module for reading parameters for Halo2 proving system from the file system. [testing](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/testing/index.html "halo2_base::utils::testing mod") Utilities for testing [Traits](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html#traits) -------------------------------------------------------------------------------------- [CurveAffineExt](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.CurveAffineExt.html "halo2_base::utils::CurveAffineExt trait") [ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html "halo2_base::utils::ScalarField trait") Helper trait to represent a field element that can be converted into [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html "u64") limbs. [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html#functions) -------------------------------------------------------------------------------------------- [bigint\_to\_fe](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.bigint_to_fe.html "halo2_base::utils::bigint_to_fe fn") Converts an immutable reference to [BigInt](https://docs.rs/num-bigint/0.4/num_bigint/bigint/struct.BigInt.html "BigInt") to a [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField") . [biguint\_to\_fe](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.biguint_to_fe.html "halo2_base::utils::biguint_to_fe fn") Converts an immutable reference to [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "BigUint") to a [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField") . [bit\_length](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.bit_length.html "halo2_base::utils::bit_length fn") Returns the number of bits needed to represent the value of `x`. [compose](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.compose.html "halo2_base::utils::compose fn") Computes the value of an integer by passing as `input` a [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") of its limb values and the `bit_len` (bit length) used. [decompose](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.decompose.html "halo2_base::utils::decompose fn") Decomposes an immutable reference to a [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField") element into `number_of_limbs` limbs of `bit_len` bits each and returns a [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") of [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField") represented by those limbs. [decompose\_bigint](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.decompose_bigint.html "halo2_base::utils::decompose_bigint fn") Decomposes an immutable reference to a [BigInt](https://docs.rs/num-bigint/0.4/num_bigint/bigint/struct.BigInt.html "BigInt") into `num_limbs` limbs of `bit_len` bits each and returns a [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") of [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField") represented by those limbs. [decompose\_bigint\_option](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.decompose_bigint_option.html "halo2_base::utils::decompose_bigint_option fn") Decomposes an immutable reference to a [BigInt](https://docs.rs/num-bigint/0.4/num_bigint/bigint/struct.BigInt.html "BigInt") into `num_limbs` limbs of `bit_len` bits each and returns a [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") of [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField") represented by those limbs wrapped in \[Value\]. [decompose\_biguint](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.decompose_biguint.html "halo2_base::utils::decompose_biguint fn") Decomposes an immutable reference to a [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "BigUint") into `num_limbs` limbs of `bit_len` bits each and returns a [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") of [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField") represented by those limbs. [decompose\_fe\_to\_u64\_limbs](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.decompose_fe_to_u64_limbs.html "halo2_base::utils::decompose_fe_to_u64_limbs fn") Decomposes an immutable reference to a [ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html "ScalarField") element into `number_of_limbs` limbs of `bit_len` bits each and returns a [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") of [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html "u64") represented by those limbs. [fe\_to\_bigint](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.fe_to_bigint.html "halo2_base::utils::fe_to_bigint fn") Converts a [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField") element into a [BigInt](https://docs.rs/num-bigint/0.4/num_bigint/bigint/struct.BigInt.html "BigInt") element by sending `fe` in `[0, F::modulus())` to\ \ [fe\_to\_biguint](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.fe_to_biguint.html "halo2_base::utils::fe_to_biguint fn")\ \ Converts an immutable reference to an PrimeField element into a [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "BigUint")\ element.\ \ [log2\_ceil](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.log2_ceil.html "halo2_base::utils::log2_ceil fn")\ \ Returns the ceiling of the base 2 logarithm of `x`.\ \ [modulus](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.modulus.html "halo2_base::utils::modulus fn")\ \ Returns the modulus of [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField")\ .\ \ [power\_of\_two](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.power_of_two.html "halo2_base::utils::power_of_two fn")\ \ Returns the [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField")\ element of 2n.\ \ [value\_to\_option](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.value_to_option.html "halo2_base::utils::value_to_option fn")\ \ Wraps the internal value of `value` in an [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "Option")\ . If the value is [None](https://doc.rust-lang.org/nightly/core/option/enum.Option.html#variant.None "None")\ , then the function returns [None](https://doc.rust-lang.org/nightly/core/option/enum.Option.html#variant.None "None")\ .\ \ [Trait Aliases](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html#trait-aliases)\ \ ----------------------------------------------------------------------------------------------------\ \ [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "halo2_base::utils::BigPrimeField traitalias") --- # FpChip in halo2_ecc::fields::fp - Rust Struct [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html) ::[fp](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/index.html) ::[FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#51-69) · [\[−\]](javascript:void(0) "collapse all docs") pub struct FpChip<'range, F: PrimeField, Fp: PrimeField> { pub range: &'range RangeChip, pub limb_bits: usize, pub num_limbs: usize, pub num_limbs_bits: usize, pub num_limbs_log2_ceil: usize, pub limb_bases: Vec, pub limb_base_big: BigInt, pub limb_mask: BigUint, pub p: BigInt, pub p_limbs: Vec, pub p_native: F, pub native_modulus: BigUint, /* private fields */ } Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#fields) ------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#structfield.range) `range: &'range [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "struct halo2_base::gates::range::RangeChip") `[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#structfield.limb_bits) `limb_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) `[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#structfield.num_limbs) `num_limbs: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) `[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#structfield.num_limbs_bits) `num_limbs_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) `[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#structfield.num_limbs_log2_ceil) `num_limbs_log2_ceil: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) `[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#structfield.limb_bases) `limb_bases: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") `[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#structfield.limb_base_big) `limb_base_big: [BigInt](https://docs.rs/num-bigint/0.4/num_bigint/bigint/struct.BigInt.html "struct num_bigint::bigint::BigInt") `[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#structfield.limb_mask) `limb_mask: [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint") `[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#structfield.p) `p: [BigInt](https://docs.rs/num-bigint/0.4/num_bigint/bigint/struct.BigInt.html "struct num_bigint::bigint::BigInt") `[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#structfield.p_limbs) `p_limbs: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") `[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#structfield.p_native) `p_native: F`[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#structfield.native_modulus) `native_modulus: [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint") ` Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#implementations) ------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#71-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl<'range, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , Fp: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") \> [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip") <'range, F, Fp> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#72-104) #### pub fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.new) (     range: &'range [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "struct halo2_base::gates::range::RangeChip") ,     limb\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ,     num\_limbs: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> Self [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#106-125) #### pub fn [enforce\_less\_than\_p](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.enforce_less_than_p) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , a: [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") ) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#127-133) #### pub fn [load\_constant\_uint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.load_constant_uint) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint") ) -> [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#trait-implementations) ------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#50) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-Clone-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl<'range, F: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") + [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , Fp: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") + [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") \> [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip") <'range, F, Fp> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#50) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip") <'range, F, Fp> Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#50) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-Debug-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl<'range, F: [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") + [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , Fp: [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") + [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") \> [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip") <'range, F, Fp> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#50) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#148-403) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-FieldChip%3CF%3E-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl<'range, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , Fp: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") \> [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") for [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip") <'range, F, Fp> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#304-322) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.range_check) #### fn [range\_check](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.range_check) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") >,     max\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) ##### [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#assumptions) * `max_bits <= n * k` where `n = self.limb_bits` and `k = self.num_limbs` * `a.truncation.limbs.len() = self.num_limbs` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#334-341) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.is_soft_zero) #### fn [is\_soft\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.is_soft_zero) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Returns 1 iff `a` is 0 as a BigUint. This means that even if `a` is 0 modulo `p`, this may return 0. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#347-364) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.is_soft_nonzero) #### fn [is\_soft\_nonzero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.is_soft_nonzero) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Given proper CRT integer `a`, returns 1 iff `a < modulus::()` and `a != 0` as integers ##### [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#assumptions-1) * `a` is proper representation of BigUint [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#149) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#associatedconstant.PRIME_FIELD_NUM_BITS) #### const [PRIME\_FIELD\_NUM\_BITS](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedconstant.PRIME_FIELD_NUM_BITS) : [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) = Fp::NUM\_BITS [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#associatedtype.UnsafeFieldPoint) #### type [UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint) = [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") A representation of a field element that is used for intermediate computations. The representation can have “overflows” (e.g., overflow limbs or negative limbs). [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#associatedtype.FieldPoint) #### type [FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint) = [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") The “proper” representation of a field element. Allowed to be a non-unique representation of a field element (e.g., can be greater than modulus) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#associatedtype.ReducedFieldPoint) #### type [ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint) = [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") , Fp> A proper representation of field elements that guarantees a unique representation of each field element. Typically this means Uints that are less than the modulus. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#associatedtype.FieldType) #### type [FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType) = Fp A type implementing `Field` trait to help with witness generation (for example with inverse) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#associatedtype.RangeChip) #### type [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.RangeChip) = [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "struct halo2_base::gates::range::RangeChip") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#156-158) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.native_modulus) #### fn [native\_modulus](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.native_modulus) (&self) -> &[BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#159-161) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.range) #### fn [range](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.range) (&self) -> &'range Self::[RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.RangeChip "type halo2_ecc::fields::FieldChip::RangeChip") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#162-164) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.limb_bits) #### fn [limb\_bits](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.limb_bits) (&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#166-168) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.get_assigned_value) #### fn [get\_assigned\_value](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.get_assigned_value) (&self, x: &[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") ) -> Fp [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#170-180) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.load_private) #### fn [load\_private](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.load_private) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , a: Fp) -> [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") Assigns `fe` as private witness. Note that the witness may **not** be constrained to be a unique representation of the field element `fe`. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#182-184) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.load_constant) #### fn [load\_constant](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.load_constant) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , a: Fp) -> [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") Assigns `fe` as constant. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#187-194) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.add_no_carry) #### fn [add\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.add_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") > ) -> [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#196-216) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.add_constant_no_carry) #### fn [add\_constant\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.add_constant_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") >,     c: Fp ) -> [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") output: `a + c` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#218-225) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.sub_no_carry) #### fn [sub\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.sub_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") > ) -> [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#231-241) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.negate) #### fn [negate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.negate) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , a: [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") ) -> [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#243-250) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.scalar_mul_no_carry) #### fn [scalar\_mul\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.scalar_mul_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") >,     c: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) ) -> [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") a \* c [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#252-260) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.scalar_mul_and_add_no_carry) #### fn [scalar\_mul\_and\_add\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.scalar_mul_and_add_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") >,     c: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) ) -> [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") a \* c + b [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#262-269) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.mul_no_carry) #### fn [mul\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.mul_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") > ) -> [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#271-284) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.check_carry_mod_to_zero) #### fn [check\_carry\_mod\_to\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.check_carry_mod_to_zero) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , a: [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") ) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#286-299) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.carry_mod) #### fn [carry\_mod](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.carry_mod) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , a: [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") ) -> [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#324-331) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.enforce_less_than) #### fn [enforce\_less\_than](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.enforce_less_than) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") , Fp> Constrains that `a` is a reduced representation and returns the wrapped `a`. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#369-374) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.is_zero) #### fn [is\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.is_zero) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#376-383) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.is_equal_unenforced) #### fn [is\_equal\_unenforced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.is_equal_unenforced) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") , Fp>,     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") , Fp> ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#388-402) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.assert_equal) #### fn [assert\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.assert_equal) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") > ) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#54-56) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.gate) #### fn [gate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.gate) (&self) -> &>::[Gate](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#associatedtype.Gate "type halo2_base::gates::range::RangeInstructions::Gate") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#66-73) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.load_private_reduced) #### fn [load\_private\_reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.load_private_reduced) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     fe: Self::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") ) -> Self::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") Assigns `fe` as private witness and contrains the witness to be in reduced form. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#182-192) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.is_equal) #### fn [is\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.is_equal) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#195-203) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.mul) #### fn [mul](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.mul) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") If using `UnsafeFieldPoint`, make sure multiplication does not cause overflow. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#206-217) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.divide) #### fn [divide](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.divide) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Constrains that `b` is nonzero as a field element and then returns `a / b`. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#224-245) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.divide_unsafe) #### fn [divide\_unsafe](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.divide_unsafe) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Returns `a / b` without constraining `b` to be nonzero. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.divide_unsafe) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#248-259) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.neg_divide) #### fn [neg\_divide](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.neg_divide) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Constrains that `b` is nonzero as a field element and then returns `-a / b`. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#263-284) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.neg_divide_unsafe) #### fn [neg\_divide\_unsafe](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.neg_divide_unsafe) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#136-146) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-PrimeFieldChip%3CF%3E-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl<'range, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , Fp: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") \> [PrimeFieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html "trait halo2_ecc::fields::PrimeFieldChip") for [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip") <'range, F, Fp> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#137-139) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.num_limbs) #### fn [num\_limbs](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html#tymethod.num_limbs) (&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#140-142) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.limb_mask) #### fn [limb\_mask](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html#tymethod.limb_mask) (&self) -> &[BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#143-145) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.limb_bases) #### fn [limb\_bases](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html#tymethod.limb_bases) (&self) -> &[\[F\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) ⓘNotable traits for &mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]`impl [Write](https://doc.rust-lang.org/nightly/std/io/trait.Write.html "trait std::io::Write") for &mut [[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]impl [Read](https://doc.rust-lang.org/nightly/std/io/trait.Read.html "trait std::io::Read") for &[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#405-424) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-Selectable%3CF%2C%20CRTInteger%3CF%3E%3E-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl<'range, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , Fp: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") \> [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip") <'range, F, Fp> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#406-414) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.select) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") ,     b: [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#416-423) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.select_by_indicator) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#426-448) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-Selectable%3CF%2C%20ProperCrtUint%3CF%3E%3E-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl<'range, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , Fp: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") \> [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip") <'range, F, Fp> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#429-437) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.select-1) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") ,     b: [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#439-447) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.select_by_indicator-1) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#synthetic-implementations) ---------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-RefUnwindSafe-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl<'range, F, Fp> [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip") <'range, F, Fp>where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") ,     Fp: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-Send-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl<'range, F, Fp> [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip") <'range, F, Fp> [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-Sync-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl<'range, F, Fp> [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip") <'range, F, Fp> [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-Unpin-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl<'range, F, Fp> [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip") <'range, F, Fp>where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") ,     Fp: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-UnwindSafe-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl<'range, F, Fp> [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip") <'range, F, Fp>where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") + [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") ,     Fp: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#blanket-implementations) ----------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-Any-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-Borrow%3CT%3E-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-BorrowMut%3CT%3E-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-Conv-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-FmtForward-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-From%3CT%3E-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-Instrument-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-Into%3CU%3E-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-Pipe-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-Pointable-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-Same%3CT%3E-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for FCwhere     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Pt: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") ,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#454-462) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.select-2) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#464-473) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.select_by_indicator-2) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-Tap-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-ToOwned-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-TryConv-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-TryFrom%3CU%3E-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-TryInto%3CU%3E-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-VZip%3CV%3E-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#impl-WithSubscriber-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # ContextCell in halo2_base - Rust Struct [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[ContextCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#99-104) · [\[−\]](javascript:void(0) "collapse all docs") pub struct ContextCell { pub context_id: usize, pub offset: usize, } Expand description Pointer to the position of a cell at `offset` in an advice column within a [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") of `context_id`. Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#fields) --------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#structfield.context_id) `context_id: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ` Identifier of the [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") that this cell belongs to. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#structfield.offset) `offset: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ` Relative offset of the cell within this [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") advice column. Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#trait-implementations) --------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#98) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-Clone-for-ContextCell) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [ContextCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html "struct halo2_base::ContextCell") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#98) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [ContextCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html "struct halo2_base::ContextCell") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#98) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-Debug-for-ContextCell) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [ContextCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html "struct halo2_base::ContextCell") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#98) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#98) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-Copy-for-ContextCell) ### impl [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") for [ContextCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html "struct halo2_base::ContextCell") Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#synthetic-implementations) ------------------------------------------------------------------------------------------------------------------------------------ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-RefUnwindSafe-for-ContextCell) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [ContextCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html "struct halo2_base::ContextCell") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-Send-for-ContextCell) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [ContextCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html "struct halo2_base::ContextCell") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-Sync-for-ContextCell) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [ContextCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html "struct halo2_base::ContextCell") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-Unpin-for-ContextCell) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [ContextCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html "struct halo2_base::ContextCell") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-UnwindSafe-for-ContextCell) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [ContextCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html "struct halo2_base::ContextCell") Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#blanket-implementations) ------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-Any-for-ContextCell) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-Borrow%3CT%3E-for-ContextCell) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-BorrowMut%3CT%3E-for-ContextCell) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-Conv-for-ContextCell) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-FmtForward-for-ContextCell) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-From%3CT%3E-for-ContextCell) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-Instrument-for-ContextCell) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-Into%3CU%3E-for-ContextCell) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-Pipe-for-ContextCell) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-Pointable-for-ContextCell) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-Same%3CT%3E-for-ContextCell) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-Tap-for-ContextCell) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-ToOwned-for-ContextCell) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-TryConv-for-ContextCell) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-TryFrom%3CU%3E-for-ContextCell) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-TryInto%3CU%3E-for-ContextCell) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-VZip%3CV%3E-for-ContextCell) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#impl-WithSubscriber-for-ContextCell) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # halo2_ecc::bigint::big_less_than - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[big\_less\_than](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_less_than/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ====================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/big_less_than.rs.html#1-17) · [\[−\]](javascript:void(0) "collapse all docs") [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_less_than/index.html#functions) ---------------------------------------------------------------------------------------------------------- [assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_less_than/fn.assign.html "halo2_ecc::bigint::big_less_than::assign fn") --- # OverflowInteger in halo2_ecc::bigint - Rust Struct [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[OverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#37-43) · [\[−\]](javascript:void(0) "collapse all docs") pub struct OverflowInteger { pub limbs: Vec>, pub max_limb_bits: usize, } Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#fields) ------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#structfield.limbs) `limbs: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") >`[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#structfield.max_limb_bits) `max_limb_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ` Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#implementations) ------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#45-75) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-OverflowInteger%3CF%3E) ### impl [OverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html "struct halo2_ecc::bigint::OverflowInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#46-48) #### pub fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.new) (limbs: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") >, max\_limb\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> Self [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#66-74) #### pub fn [evaluate\_native](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.evaluate_native) (     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     gate: &impl [GateInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html "trait halo2_base::gates::flex_gate::GateInstructions") ,     limbs: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") >,     limb\_bases: &[\[F\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Computes `sum_i limbs[i] * limb_bases[i]` in native field `F`. In practice assumes `limb_bases[i] = 2^{limb_bits * i}`. Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#trait-implementations) ------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#36) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-Clone-for-OverflowInteger%3CF%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [OverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html "struct halo2_ecc::bigint::OverflowInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#36) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [OverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html "struct halo2_ecc::bigint::OverflowInteger") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#36) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-Debug-for-OverflowInteger%3CF%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [OverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html "struct halo2_ecc::bigint::OverflowInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#36) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#synthetic-implementations) ---------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-RefUnwindSafe-for-OverflowInteger%3CF%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [OverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html "struct halo2_ecc::bigint::OverflowInteger") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-Send-for-OverflowInteger%3CF%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [OverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html "struct halo2_ecc::bigint::OverflowInteger") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-Sync-for-OverflowInteger%3CF%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [OverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html "struct halo2_ecc::bigint::OverflowInteger") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-Unpin-for-OverflowInteger%3CF%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [OverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html "struct halo2_ecc::bigint::OverflowInteger") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-UnwindSafe-for-OverflowInteger%3CF%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [OverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html "struct halo2_ecc::bigint::OverflowInteger") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#blanket-implementations) ----------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-Any-for-OverflowInteger%3CF%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-Borrow%3CT%3E-for-OverflowInteger%3CF%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-BorrowMut%3CT%3E-for-OverflowInteger%3CF%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-Conv-for-OverflowInteger%3CF%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-FmtForward-for-OverflowInteger%3CF%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-From%3CT%3E-for-OverflowInteger%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-Instrument-for-OverflowInteger%3CF%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-Into%3CU%3E-for-OverflowInteger%3CF%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-Pipe-for-OverflowInteger%3CF%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-Pointable-for-OverflowInteger%3CF%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-Same%3CT%3E-for-OverflowInteger%3CF%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-OverflowInteger%3CF%3E) ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for FCwhere     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Pt: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") ,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#454-462) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.select) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#464-473) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.select_by_indicator) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-Tap-for-OverflowInteger%3CF%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-ToOwned-for-OverflowInteger%3CF%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-TryConv-for-OverflowInteger%3CF%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-TryFrom%3CU%3E-for-OverflowInteger%3CF%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-TryInto%3CU%3E-for-OverflowInteger%3CF%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-VZip%3CV%3E-for-OverflowInteger%3CF%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#impl-WithSubscriber-for-OverflowInteger%3CF%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # ProperUint in halo2_ecc::bigint - Rust Struct [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[ProperUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =============================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#84) · [\[−\]](javascript:void(0) "collapse all docs") #[repr(transparent)]pub struct ProperUint(_); Expand description Safe wrapper around a BigUint represented as a vector of limbs in **little endian**. The underlying BigUint is represented by sumi limbs\[i\] \* 2limb\_bits \* i To save memory we do not store the `limb_bits` and it must be inferred from context. Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#implementations) -------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#86-112) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-ProperUint%3CF%3E) ### impl [ProperUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html "struct halo2_ecc::bigint::ProperUint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#87-89) #### pub fn [limbs](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.limbs) (&self) -> &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#91-93) #### pub fn [into\_overflow](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.into_overflow) (self, limb\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [OverflowInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.OverflowInteger.html "struct halo2_ecc::bigint::OverflowInteger") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#99-111) #### pub fn [into\_crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.into_crt) (     self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     gate: &impl [GateInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html "trait halo2_base::gates::flex_gate::GateInstructions") ,     value: [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint") ,     limb\_bases: &[\[F\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) ,     limb\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") Computes `sum_i limbs[i] * limb_bases[i]` in native field `F`. In practice assumes `limb_bases[i] = 2^{limb_bits * i}`. Assumes that `value` is the underlying BigUint value represented by `self`. Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#trait-implementations) -------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#83) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-Clone-for-ProperUint%3CF%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [ProperUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html "struct halo2_ecc::bigint::ProperUint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#83) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [ProperUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html "struct halo2_ecc::bigint::ProperUint") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#83) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-Debug-for-ProperUint%3CF%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [ProperUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html "struct halo2_ecc::bigint::ProperUint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#83) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#247-251) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-From%3CProperCrtUint%3CF%3E%3E-for-ProperUint%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") > for [ProperUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html "struct halo2_ecc::bigint::ProperUint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#248-250) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (x: [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") ) -> Self Converts to this type from the input type. Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#synthetic-implementations) ----------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-RefUnwindSafe-for-ProperUint%3CF%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [ProperUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html "struct halo2_ecc::bigint::ProperUint") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-Send-for-ProperUint%3CF%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [ProperUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html "struct halo2_ecc::bigint::ProperUint") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-Sync-for-ProperUint%3CF%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [ProperUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html "struct halo2_ecc::bigint::ProperUint") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-Unpin-for-ProperUint%3CF%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [ProperUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html "struct halo2_ecc::bigint::ProperUint") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-UnwindSafe-for-ProperUint%3CF%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [ProperUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html "struct halo2_ecc::bigint::ProperUint") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#blanket-implementations) ------------------------------------------------------------------------------------------------------------------------------------ [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-Any-for-ProperUint%3CF%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-Borrow%3CT%3E-for-ProperUint%3CF%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-BorrowMut%3CT%3E-for-ProperUint%3CF%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-Conv-for-ProperUint%3CF%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-FmtForward-for-ProperUint%3CF%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-From%3CT%3E-for-ProperUint%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.from-1) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-Instrument-for-ProperUint%3CF%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-Into%3CU%3E-for-ProperUint%3CF%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-Pipe-for-ProperUint%3CF%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-Pointable-for-ProperUint%3CF%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-Same%3CT%3E-for-ProperUint%3CF%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-ProperUint%3CF%3E) ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for FCwhere     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Pt: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") ,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#454-462) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.select) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#464-473) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.select_by_indicator) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-Tap-for-ProperUint%3CF%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-ToOwned-for-ProperUint%3CF%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-TryConv-for-ProperUint%3CF%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-TryFrom%3CU%3E-for-ProperUint%3CF%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-TryInto%3CU%3E-for-ProperUint%3CF%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-VZip%3CV%3E-for-ProperUint%3CF%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#impl-WithSubscriber-for-ProperUint%3CF%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # halo2_ecc::bigint::carry_mod - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[carry\_mod](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/carry_mod/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/carry_mod.rs.html#1-197) · [\[−\]](javascript:void(0) "collapse all docs") [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/carry_mod/index.html#functions) ------------------------------------------------------------------------------------------------------ [crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/carry_mod/fn.crt.html "halo2_ecc::bigint::carry_mod::crt fn") Assumptions --- # Reduced in halo2_ecc::fields::fp - Rust Struct [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html) ::[fp](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/index.html) ::[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#30) · [\[−\]](javascript:void(0) "collapse all docs") pub struct Reduced(_, _); Expand description Wrapper around `FieldPoint` to guarantee this is a “reduced” representation of an `Fp` field element. A reduced representation guarantees that there is a _unique_ representation of each field element. Typically this means Uints that are less than the modulus. Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#implementations) -------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#32-40) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#33-35) #### pub fn [as\_ref](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.as_ref) (&self) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") <[&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) FieldPoint, Fp> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#37-39) #### pub fn [inner](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.inner) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) FieldPoint Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#trait-implementations) -------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#29) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-Clone-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#29) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#29) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-Debug-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#29) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#42-46) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-From%3CReduced%3CProperCrtUint%3CF%3E%2C%20Fp%3E%3E-for-ProperCrtUint%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") , Fp>> for [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#43-45) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (x: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") , Fp>) -> Self Converts to this type from the input type. Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#synthetic-implementations) ----------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-RefUnwindSafe-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") where     FieldPoint: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") ,     Fp: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-Send-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") where     FieldPoint: [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") ,     Fp: [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-Sync-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") where     FieldPoint: [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") ,     Fp: [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-Unpin-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") where     FieldPoint: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") ,     Fp: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-UnwindSafe-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") where     FieldPoint: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") ,     Fp: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#blanket-implementations) ------------------------------------------------------------------------------------------------------------------------------------ [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-Any-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-Borrow%3CT%3E-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-BorrowMut%3CT%3E-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-Conv-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-FmtForward-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-From%3CT%3E-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.from-1) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-Instrument-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-Into%3CU%3E-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-Pipe-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-Pointable-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-Same%3CT%3E-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-BigIntStrategy) ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for FCwhere     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Pt: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") ,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#454-462) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.select) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#464-473) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.select_by_indicator) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-Tap-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-ToOwned-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-TryConv-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-TryFrom%3CU%3E-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-TryInto%3CU%3E-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-VZip%3CV%3E-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#impl-WithSubscriber-for-Reduced%3CFieldPoint%2C%20Fp%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # Fp12Chip in halo2_ecc::bn254 - Rust Type Definition [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bn254](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html) ::[Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp12Chip.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =============================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/mod.rs.html#13) · [\[−\]](javascript:void(0) "collapse all docs") pub type Fp12Chip<'chip, F> = Fp12Chip<'chip, F, FpChip<'chip, F>, Fq12, 9>; Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp12Chip.html#implementations) --------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#15-397) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp12Chip.html#impl-Fp12Chip%3C%27chip%2C%20F%3E) ### impl<'chip, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") \> [Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp12Chip.html "type halo2_ecc::bn254::Fp12Chip") <'chip, F> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#18-63) #### pub fn [frobenius\_map](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp12Chip.html#method.frobenius_map) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &>::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ,     power: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#68-98) #### pub fn [pow](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp12Chip.html#method.pow) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &>::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ,     exp: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) \> ) -> >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ##### [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp12Chip.html#assumptions) * `a` is nonzero field point [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#110-117) #### pub fn [cyclotomic\_compress](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp12Chip.html#method.cyclotomic_compress) (&self, a: &[FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint") ) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint") > in = g0 + g2 w + g4 w^2 + g1 w^3 + g3 w^4 + g5 w^5 where g\_i = g\_i0 + g\_i1 \* u are elements of Fp2 out = Compress(in) = \[ g2, g3, g4, g5 \] [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#131-202) #### pub fn [cyclotomic\_decompress](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp12Chip.html#method.cyclotomic_decompress) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     compression: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint") > ) -> [FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint") Input: * `compression = [g2, g3, g4, g5]` where g\_i are proper elements of Fp2 Output: * `Decompress(compression) = g0 + g2 w + g4 w^2 + g1 w^3 + g3 w^4 + g5 w^5` where * All elements of output are proper elements of Fp2 and: c = XI0 + u if g2 != 0: g1 = (g5^2 \* c + 3 g4^2 - 2 g3)/(4g2) g0 = (2 g1^2 + g2 \* g5 - 3 g3\*g4) \* c + 1 if g2 = 0: g1 = (2 g4 \* g5)/g3 g0 = (2 g1^2 - 3 g3 \* g4) \* c + 1 [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#216-263) #### pub fn [cyclotomic\_square](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp12Chip.html#method.cyclotomic_square) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     compression: &\[[FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint")\ \] ) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint") > [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#268-301) #### pub fn [cyclotomic\_pow](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp12Chip.html#method.cyclotomic_pow) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint") ,     exp: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) \> ) -> [FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint") ##### [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp12Chip.html#assumptions-1) * `a` is a nonzero element in the cyclotomic subgroup [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#305-370) #### pub fn [hard\_part\_BN](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp12Chip.html#method.hard_part_BN) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     m: >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ) -> >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#375-385) #### pub fn [easy\_part](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp12Chip.html#method.easy_part) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ) -> >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ##### [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp12Chip.html#assumptions-2) * `a` is nonzero field point [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/final_exp.rs.html#388-396) #### pub fn [final\_exp](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp12Chip.html#method.final_exp) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ) -> >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") --- # QuantumCell in halo2_base - Rust Enum [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#58-72) · [\[−\]](javascript:void(0) "collapse all docs") pub enum QuantumCell { Existing(AssignedValue), Witness(F), WitnessFraction(Assigned), Constant(F), } Expand description Convenience Enum which abstracts the scenarios under a value is added to an advice column. Variants[](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#variants) ----------------------------------------------------------------------------------------------- ### [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#variant.Existing) `Existing([AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") )` An [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "AssignedValue") already existing in the advice column (e.g., a witness value that was already assigned in a previous cell in the column). * Assigns a new cell into the advice column with value equal to the value of a. * Imposes an equality constraint between the new cell and the cell of a so the Verifier guarantees that these two cells are always equal. ### [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#variant.Witness) `Witness(F)` A non-existing witness [ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html "ScalarField") value (e.g. private input) to add to an advice column. ### [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#variant.WitnessFraction) `WitnessFraction(Assigned)` A non-existing witness [ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html "ScalarField") marked as a fraction for optimization in batch inversion later. ### [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#variant.Constant) `Constant(F)` A known constant value added as a witness value to the advice column and added to the “Fixed” column during circuit creation time. * Visible to both the Prover and the Verifier. * Imposes an equality constraint between the two corresponding cells in the advice and fixed columns. Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#implementations) ------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#81-95) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-QuantumCell%3CF%3E) ### impl [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#85-94) #### pub fn [value](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.value) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) F Returns an immutable reference to the underlying [ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html "ScalarField") value of a QuantumCell. Panics if the QuantumCell is of type WitnessFraction. Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#trait-implementations) ------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#57) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-Clone-for-QuantumCell%3CF%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#57) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#57) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-Debug-for-QuantumCell%3CF%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#57) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#74-79) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-From%3CAssignedValue%3CF%3E%3E-for-QuantumCell%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") > for [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#76-78) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> Self Converts an [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "AssignedValue") into a [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") of \[type Existing(AssignedValue)\] [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#57) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-Copy-for-QuantumCell%3CF%3E) ### impl [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") for [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#synthetic-implementations) ---------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-RefUnwindSafe-for-QuantumCell%3CF%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-Send-for-QuantumCell%3CF%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-Sync-for-QuantumCell%3CF%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-Unpin-for-QuantumCell%3CF%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-UnwindSafe-for-QuantumCell%3CF%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#blanket-implementations) ----------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-Any-for-QuantumCell%3CF%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-Borrow%3CT%3E-for-QuantumCell%3CF%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-BorrowMut%3CT%3E-for-QuantumCell%3CF%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-Conv-for-QuantumCell%3CF%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-FmtForward-for-QuantumCell%3CF%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-From%3CT%3E-for-QuantumCell%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.from-1) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-Instrument-for-QuantumCell%3CF%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-Into%3CU%3E-for-QuantumCell%3CF%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-Pipe-for-QuantumCell%3CF%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-Pointable-for-QuantumCell%3CF%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-Same%3CT%3E-for-QuantumCell%3CF%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-Tap-for-QuantumCell%3CF%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-ToOwned-for-QuantumCell%3CF%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-TryConv-for-QuantumCell%3CF%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-TryFrom%3CU%3E-for-QuantumCell%3CF%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-TryInto%3CU%3E-for-QuantumCell%3CF%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-VZip%3CV%3E-for-QuantumCell%3CF%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#impl-WithSubscriber-for-QuantumCell%3CF%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # ProperCrtUint in halo2_ecc::bigint - Rust Struct [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ===================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#220) · [\[−\]](javascript:void(0) "collapse all docs") #[repr(transparent)]pub struct ProperCrtUint(_); Expand description Safe wrapper for representing a BigUint as a [`CRTInteger`](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "CRTInteger") whose underlying BigUint value is in `[0, 2^t)` where `t = truncation.limbs.len() * limb_bits`. This struct guarantees that\ \ * each `truncation.limbs[i]` is ranged checked to be in `[0, 2^limb_bits)`,\ * `native` is the evaluation of `sum_i truncation.limbs[i] * 2^{limb_bits * i} (mod modulus::)` in the native field `F`\ * `value` is equal to `sum_i truncation.limbs[i] * 2^{limb_bits * i}` as integers\ \ Note this means `native` and `value` are completely determined by `truncation`. However, we still store them explicitly for convenience.\ \ Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#implementations)\ \ -----------------------------------------------------------------------------------------------------------------------\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#253-265)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-ProperCrtUint%3CF%3E)\ \ ### impl [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#254-256)\ \ #### pub fn [limbs](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.limbs)\ (&self) -> &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \]\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#258-260)\ \ #### pub fn [native](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.native)\ (&self) -> &[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#262-264)\ \ #### pub fn [value](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.value)\ (&self) -> [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint")\ \ Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#trait-implementations)\ \ -----------------------------------------------------------------------------------------------------------------------------------\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#222-226)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-AsRef%3CCRTInteger%3CF%3E%3E-for-ProperCrtUint%3CF%3E)\ \ ### impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef")\ <[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger")\ > for [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#223-225)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.as_ref)\ \ #### fn [as\_ref](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html#tymethod.as_ref)\ (&self) -> &[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger")\ \ \ Converts this type into a shared reference of the (usually inferred) input type.\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#219)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-Clone-for-ProperCrtUint%3CF%3E)\ \ ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone")\ for [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#219)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.clone)\ \ #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone)\ (&self) -> [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ \ \ Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone)\ \ 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.clone_from)\ \ #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from)\ (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)\ \ Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from)\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#219)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-Debug-for-ProperCrtUint%3CF%3E)\ \ ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug")\ for [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#219)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.fmt)\ \ #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt)\ (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter")\ <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result")\ \ Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt)\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#241-245)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-From%3C%26%27a%20ProperCrtUint%3CF%3E%3E-for-CRTInteger%3CF%3E)\ \ ### impl<'a, F: [ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html "trait halo2_base::utils::ScalarField")\ \> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From")\ <&'a [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ > for [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#242-244)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.from-2)\ \ #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from)\ (x: &'a [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ ) -> Self\ \ Converts to this type from the input type.\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#228-232)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-From%3C%26%27a%20ProperCrtUint%3CF%3E%3E-for-ProperCrtUint%3CF%3E)\ \ ### impl<'a, F: [ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html "trait halo2_base::utils::ScalarField")\ \> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From")\ <&'a [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ > for [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#229-231)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.from)\ \ #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from)\ (x: &'a [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ ) -> Self\ \ Converts to this type from the input type.\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#235-239)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-From%3CProperCrtUint%3CF%3E%3E-for-CRTInteger%3CF%3E)\ \ ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From")\ <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ > for [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#236-238)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.from-1)\ \ #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from)\ (x: [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ ) -> Self\ \ Converts to this type from the input type.\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#247-251)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-From%3CProperCrtUint%3CF%3E%3E-for-ProperUint%3CF%3E)\ \ ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From")\ <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ > for [ProperUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html "struct halo2_ecc::bigint::ProperUint")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#248-250)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.from-3)\ \ #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from)\ (x: [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ ) -> Self\ \ Converts to this type from the input type.\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#42-46)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-From%3CReduced%3CProperCrtUint%3CF%3E%2C%20Fp%3E%3E-for-ProperCrtUint%3CF%3E)\ \ ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From")\ <[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ , Fp>> for [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#43-45)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.from-4)\ \ #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from)\ (x: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ , Fp>) -> Self\ \ Converts to this type from the input type.\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#426-448)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-Selectable%3CF%2C%20ProperCrtUint%3CF%3E%3E-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E)\ \ ### impl<'range, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField")\ , Fp: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField")\ \> [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable")\ > for [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip")\ <'range, F, Fp>\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#429-437)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.select)\ \ #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ , \     b: [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ , \     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \ ) -> [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#439-447)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.select_by_indicator)\ \ #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef")\ <\[[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ \]>, \     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] \ ) -> [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ \ \ Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#synthetic-implementations)\ \ --------------------------------------------------------------------------------------------------------------------------------------------\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-RefUnwindSafe-for-ProperCrtUint%3CF%3E)\ \ ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe")\ for [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ where \     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-Send-for-ProperCrtUint%3CF%3E)\ \ ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send")\ for [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ \ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-Sync-for-ProperCrtUint%3CF%3E)\ \ ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync")\ for [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ \ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-Unpin-for-ProperCrtUint%3CF%3E)\ \ ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin")\ for [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ where \     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-UnwindSafe-for-ProperCrtUint%3CF%3E)\ \ ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe")\ for [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint")\ where \     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe")\ ,\ \ Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#blanket-implementations)\ \ ---------------------------------------------------------------------------------------------------------------------------------------\ \ [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-Any-for-ProperCrtUint%3CF%3E)\ \ ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any")\ for Twhere \     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.type_id)\ \ #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id)\ (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId")\ \ Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id)\ \ [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-Borrow%3CT%3E-for-ProperCrtUint%3CF%3E)\ \ ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow")\ for Twhere \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow")\ · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.borrow)\ \ #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow)\ (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T\ \ Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow)\ \ [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-BorrowMut%3CT%3E-for-ProperCrtUint%3CF%3E)\ \ ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut")\ for Twhere \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow")\ · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.borrow_mut)\ \ #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut)\ (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T\ \ Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut)\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-Conv-for-ProperCrtUint%3CF%3E)\ \ ### impl Conv for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.conv)\ \ #### fn conv(self) -> Twhere \     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ ,\ \ Converts `self` into `T` using `Into`. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-FmtForward-for-ProperCrtUint%3CF%3E)\ \ ### impl FmtForward for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.fmt_binary)\ \ #### fn fmt\_binary(self) -> FmtBinarywhere \     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary")\ ,\ \ Causes `self` to use its `Binary` implementation when `Debug`\-formatted.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.fmt_display)\ \ #### fn fmt\_display(self) -> FmtDisplaywhere \     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display")\ ,\ \ Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.fmt_lower_exp)\ \ #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere \     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp")\ ,\ \ Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.fmt_lower_hex)\ \ #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere \     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex")\ ,\ \ Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.fmt_octal)\ \ #### fn fmt\_octal(self) -> FmtOctalwhere \     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal")\ ,\ \ Causes `self` to use its `Octal` implementation when `Debug`\-formatted.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.fmt_pointer)\ \ #### fn fmt\_pointer(self) -> FmtPointerwhere \     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer")\ ,\ \ Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.fmt_upper_exp)\ \ #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere \     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp")\ ,\ \ Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.fmt_upper_hex)\ \ #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere \     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex")\ ,\ \ Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.fmt_list)\ \ #### fn fmt\_list(self) -> FmtListwhere \     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator")\ ,\ \ Formats each item in a sequence. Read more\ \ [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-From%3CT%3E-for-ProperCrtUint%3CF%3E)\ \ ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From")\ for T\ \ const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert")\ · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.from-5)\ \ #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from)\ (t: T) -> T\ \ Returns the argument unchanged.\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-Instrument-for-ProperCrtUint%3CF%3E)\ \ ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument")\ for T\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.instrument)\ \ #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument)\ (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span")\ ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented")\ \ \ Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span")\ , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument)\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.in_current_span)\ \ #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span)\ (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented")\ \ \ Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current)\ [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html)\ , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span)\ \ [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-Into%3CU%3E-for-ProperCrtUint%3CF%3E)\ \ ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ for Twhere \     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From")\ ,\ \ const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert")\ · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.into)\ \ #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into)\ (self) -> U\ \ Calls `U::from(self)`.\ \ That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-Pipe-for-ProperCrtUint%3CF%3E)\ \ ### impl Pipe for Twhere \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.pipe)\ \ #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ (Self) -> R) -> Rwhere \     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Pipes by value. This is generally the method you want to use. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.pipe_ref)\ \ #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self) -> R) -> Rwhere \     R: 'a,\ \ Borrows `self` and passes that borrow into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.pipe_ref_mut)\ \ #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self) -> R) -> Rwhere \     R: 'a,\ \ Mutably borrows `self` and passes that borrow into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.pipe_borrow)\ \ #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B) -> R) -> Rwhere \     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow")\ , \     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Borrows `self`, then passes `self.borrow()` into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.pipe_borrow_mut)\ \ #### fn pipe\_borrow\_mut<'a, B, R>( \     &'a mut self, \     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B) -> R \ ) -> Rwhere \     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut")\ , \     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.pipe_as_ref)\ \ #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ U) -> R) -> Rwhere \     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef")\ , \     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Borrows `self`, then passes `self.as_ref()` into the pipe function.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.pipe_as_mut)\ \ #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ U) -> R) -> Rwhere \     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut")\ , \     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.pipe_deref)\ \ #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T) -> R) -> Rwhere \     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Borrows `self`, then passes `self.deref()` into the pipe function.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.pipe_deref_mut)\ \ #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T) -> R) -> Rwhere \     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut")\ + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-Pointable-for-ProperCrtUint%3CF%3E)\ \ ### impl Pointable for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#associatedconstant.ALIGN)\ \ #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ = mem::align\_of::()\ \ The alignment of pointer.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#associatedtype.Init)\ \ #### type Init = T\ \ The type for initializers.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.init)\ \ #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ \ Initializes a with the given initializer. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.deref)\ \ #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T\ \ Dereferences the given pointer. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.deref_mut)\ \ #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T\ \ Mutably dereferences the given pointer. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.drop)\ \ #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ )\ \ Drops the object pointed to by the given pointer. Read more\ \ [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-Same%3CT%3E-for-ProperCrtUint%3CF%3E)\ \ ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same")\ for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#associatedtype.Output)\ \ #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output)\ = T\ \ Should always be `Self`\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-ProperCrtUint%3CF%3E)\ \ ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable")\ > for FCwhere \     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField")\ , \     Pt: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone")\ , \     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable")\ ,\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#454-462)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.select-1)\ \ #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ , \     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ , \     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \ ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#464-473)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.select_by_indicator-1)\ \ #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef")\ <\[[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \]>, \     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] \ ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-Tap-for-ProperCrtUint%3CF%3E)\ \ ### impl Tap for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.tap)\ \ #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)) -> Self\ \ Immutable access to a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.tap_mut)\ \ #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)) -> Self\ \ Mutable access to a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.tap_borrow)\ \ #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B)) -> Selfwhere \     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow")\ , \     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Immutable access to the `Borrow` of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.tap_borrow_mut)\ \ #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B)) -> Selfwhere \     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut")\ , \     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Mutable access to the `BorrowMut` of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.tap_ref)\ \ #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ R)) -> Selfwhere \     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef")\ , \     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Immutable access to the `AsRef` view of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.tap_ref_mut)\ \ #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ R)) -> Selfwhere \     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut")\ , \     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Mutable access to the `AsMut` view of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.tap_deref)\ \ #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)) -> Selfwhere \     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Immutable access to the `Deref::Target` of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.tap_deref_mut)\ \ #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)) -> Selfwhere \     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut")\ + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Mutable access to the `Deref::Target` of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.tap_dbg)\ \ #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)) -> Self\ \ Calls `.tap()` only in debug builds, and is erased in release builds.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.tap_mut_dbg)\ \ #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)) -> Self\ \ Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.tap_borrow_dbg)\ \ #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B)) -> Selfwhere \     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow")\ , \     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.tap_borrow_mut_dbg)\ \ #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B)) -> Selfwhere \     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut")\ , \     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.tap_ref_dbg)\ \ #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ R)) -> Selfwhere \     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef")\ , \     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.tap_ref_mut_dbg)\ \ #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ R)) -> Selfwhere \     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut")\ , \     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.tap_deref_dbg)\ \ #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)) -> Selfwhere \     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.tap_deref_mut_dbg)\ \ #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)) -> Selfwhere \     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut")\ + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more\ \ [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-ToOwned-for-ProperCrtUint%3CF%3E)\ \ ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned")\ for Twhere \     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#associatedtype.Owned)\ \ #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned)\ = T\ \ The resulting type after obtaining ownership.\ \ [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.to_owned)\ \ #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned)\ (&self) -> T\ \ Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned)\ \ [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.clone_into)\ \ #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into)\ (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)\ \ Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into)\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-TryConv-for-ProperCrtUint%3CF%3E)\ \ ### impl TryConv for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.try_conv)\ \ #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result")\ where \     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto")\ ,\ \ Attempts to convert `self` into `T` using `TryInto`. Read more\ \ [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-TryFrom%3CU%3E-for-ProperCrtUint%3CF%3E)\ \ ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom")\ for Twhere \     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#associatedtype.Error-1)\ \ #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error)\ = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible")\ \ The type returned in the event of a conversion error.\ \ const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert")\ · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.try_from)\ \ #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from)\ (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result")\ >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error")\ \>\ \ Performs the conversion.\ \ [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-TryInto%3CU%3E-for-ProperCrtUint%3CF%3E)\ \ ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto")\ for Twhere \     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#associatedtype.Error)\ \ #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error)\ = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error")\ \ The type returned in the event of a conversion error.\ \ const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert")\ · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.try_into)\ \ #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into)\ (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result")\ >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error")\ \>\ \ Performs the conversion.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-VZip%3CV%3E-for-ProperCrtUint%3CF%3E)\ \ ### impl VZip for Twhere \     V: MultiLane,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.vzip)\ \ #### fn vzip(self) -> V\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#impl-WithSubscriber-for-ProperCrtUint%3CF%3E)\ \ ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber")\ for T\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.with_subscriber)\ \ #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber)\ (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch")\ where \     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ ,\ \ Attaches the provided [`Subscriber`](super::Subscriber)\ to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch")\ wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber)\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html#method.with_current_subscriber)\ \ #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber)\ (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch")\ \ \ Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber)\ [`Subscriber`](super::Subscriber)\ to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch")\ wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # FieldVector in halo2_ecc::fields::vector - Rust Struct [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html) ::[vector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/index.html) ::[FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#15) · [\[−\]](javascript:void(0) "collapse all docs") #[repr(transparent)]pub struct FieldVector(pub Vec); Expand description A fixed length vector of `FieldPoint`s Tuple Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#fields) ---------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#structfield.0) `0: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") ` Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#trait-implementations) ---------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#31-35) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-AsRef%3C%5BT%5D%3E-for-FieldVector%3CT%3E) ### impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <[\[T\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) \> for [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#32-34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.as_ref) #### fn [as\_ref](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html#tymethod.as_ref) (&self) -> &[\[T\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) ⓘNotable traits for &mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]`impl [Write](https://doc.rust-lang.org/nightly/std/io/trait.Write.html "trait std::io::Write") for &mut [[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]impl [Read](https://doc.rust-lang.org/nightly/std/io/trait.Read.html "trait std::io::Read") for &[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]` Converts this type into a shared reference of the (usually inferred) input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#14) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-Clone-for-FieldVector%3CT%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#14) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#14) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-Debug-for-FieldVector%3CT%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#14) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#37-41) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-From%3C%26%27a%20FieldVector%3CT%3E%3E-for-FieldVector%3CU%3E) ### impl<'a, T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") > [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&'a [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") > for [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#38-40) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (other: &'a [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") ) -> Self Converts to this type from the input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#43-47) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-From%3CFieldVector%3CProperCrtUint%3CF%3E%3E%3E-for-FieldVector%3CCRTInteger%3CF%3E%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") >> for [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") <[CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") > [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#44-46) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.from-1) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (other: [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") >) -> Self Converts to this type from the input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#49-53) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-From%3CFieldVector%3CReduced%3CT%2C%20Fp%3E%3E%3E-for-FieldVector%3CT%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") <[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") >> for [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#50-52) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.from-2) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") <[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") >) -> Self Converts to this type from the input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#17-23) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-Index%3Cusize%3E-for-FieldVector%3CT%3E) ### impl [Index](https://doc.rust-lang.org/nightly/core/ops/index/trait.Index.html "trait core::ops::index::Index") <[usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) \> for [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#associatedtype.Output) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/index/trait.Index.html#associatedtype.Output) = T The returned type after indexing. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#20-22) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.index) #### fn [index](https://doc.rust-lang.org/nightly/core/ops/index/trait.Index.html#tymethod.index) (&self, index: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> &Self::[Output](https://doc.rust-lang.org/nightly/core/ops/index/trait.Index.html#associatedtype.Output "type core::ops::index::Index::Output") Performs the indexing (`container[index]`) operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/index/trait.Index.html#tymethod.index) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#25-29) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-IndexMut%3Cusize%3E-for-FieldVector%3CT%3E) ### impl [IndexMut](https://doc.rust-lang.org/nightly/core/ops/index/trait.IndexMut.html "trait core::ops::index::IndexMut") <[usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) \> for [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#26-28) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.index_mut) #### fn [index\_mut](https://doc.rust-lang.org/nightly/core/ops/index/trait.IndexMut.html#tymethod.index_mut) (&mut self, index: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> &mut Self::[Output](https://doc.rust-lang.org/nightly/core/ops/index/trait.Index.html#associatedtype.Output "type core::ops::index::Index::Output") Performs the mutable indexing (`container[index]`) operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/index/trait.IndexMut.html#tymethod.index_mut) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#55-62) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-IntoIterator-for-FieldVector%3CT%3E) ### impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") for [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#associatedtype.Item) #### type [Item](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.Item) = T The type of the elements being iterated over. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#associatedtype.IntoIter) #### type [IntoIter](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.IntoIter) = [IntoIter](https://doc.rust-lang.org/nightly/alloc/vec/into_iter/struct.IntoIter.html "struct alloc::vec::into_iter::IntoIter") Which kind of iterator are we turning this into? [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#59-61) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.into_iter) #### fn [into\_iter](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#tymethod.into_iter) (self) -> Self::[IntoIter](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.IntoIter "type core::iter::traits::collect::IntoIterator::IntoIter") Creates an iterator from a value. [Read more](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#tymethod.into_iter) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#synthetic-implementations) ------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-RefUnwindSafe-for-FieldVector%3CT%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") where     T: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-Send-for-FieldVector%3CT%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") where     T: [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-Sync-for-FieldVector%3CT%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") where     T: [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-Unpin-for-FieldVector%3CT%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") where     T: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-UnwindSafe-for-FieldVector%3CT%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") where     T: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#blanket-implementations) -------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-Any-for-FieldVector%3CT%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-AsBits%3CT%3E-for-FieldVector%3CT%3E) ### impl AsBits for Awhere     A: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <[\[T\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) \>,     T: BitStore, [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.as_bits) #### fn as\_bits(&self) -> &BitSlicewhere     O: BitOrder, Views `self` as an immutable bit-slice region with the `O` ordering. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.try_as_bits) #### fn try\_as\_bits(&self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <&BitSlice, BitSpanError>where     O: BitOrder, Attempts to view `self` as an immutable bit-slice region with the `O` ordering. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-BatchInvert%3CF%3E-for-FieldVector%3CT%3E) ### impl<'a, F, I> BatchInvert for Iwhere     F: Field + [ConstantTimeEq](https://docs.rs/subtle/2.4.1/subtle/trait.ConstantTimeEq.html "trait subtle::ConstantTimeEq") ,     I: [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.batch_invert) #### fn batch\_invert(self) -> F Consumes this iterator and inverts each field element (when nonzero). Zero-valued elements are left as zero. Read more [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-Borrow%3CT%3E-for-FieldVector%3CT%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-BorrowMut%3CT%3E-for-FieldVector%3CT%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-Conv-for-FieldVector%3CT%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-FmtForward-for-FieldVector%3CT%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-From%3CT%3E-for-FieldVector%3CT%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.from-3) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-Instrument-for-FieldVector%3CT%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-Into%3CU%3E-for-FieldVector%3CT%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-Pipe-for-FieldVector%3CT%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-Pointable-for-FieldVector%3CT%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-Same%3CT%3E-for-FieldVector%3CT%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#associatedtype.Output-1) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-FieldVector%3CT%3E) ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for FCwhere     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Pt: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") ,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#454-462) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.select) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#464-473) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.select_by_indicator) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-Tap-for-FieldVector%3CT%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-ToOwned-for-FieldVector%3CT%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-TryConv-for-FieldVector%3CT%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-TryFrom%3CU%3E-for-FieldVector%3CT%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-TryInto%3CU%3E-for-FieldVector%3CT%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-VZip%3CV%3E-for-FieldVector%3CT%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#impl-WithSubscriber-for-FieldVector%3CT%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # PairingChip in halo2_ecc::bn254::pairing - Rust Struct [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bn254](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html) ::[pairing](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/index.html) ::[PairingChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =============================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#447-449) · [\[−\]](javascript:void(0) "collapse all docs") pub struct PairingChip<'chip, F: PrimeField> { pub fp_chip: &'chip FpChip<'chip, F>, } Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#fields) ---------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#structfield.fp_chip) `fp_chip: &'chip [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FpChip.html "type halo2_ecc::bn254::FpChip") <'chip, F>` Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#implementations) ---------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#451-548) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-PairingChip%3C%27chip%2C%20F%3E) ### impl<'chip, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") \> [PairingChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html "struct halo2_ecc::bn254::pairing::PairingChip") <'chip, F> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#452-454) #### pub fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.new) (fp\_chip: &'chip [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FpChip.html "type halo2_ecc::bn254::FpChip") <'\_, F>) -> Self [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#456-463) #### pub fn [load\_private\_g1\_unchecked](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.load_private_g1_unchecked) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     point: G1Affine ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") > [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#465-473) #### pub fn [load\_private\_g2\_unchecked](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.load_private_g2_unchecked) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     point: G2Affine ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") > [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#475-490) #### pub fn [miller\_loop](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.miller_loop) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     Q: &[EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") >,     P: &[EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") > ) -> [FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#492-505) #### pub fn [multi\_miller\_loop](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.multi_miller_loop) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     pairs: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <(&[EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") >, &[EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") >)> ) -> [FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#507-510) #### pub fn [final\_exp](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.final_exp) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , f: [FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint") ) -> [FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#513-523) #### pub fn [pairing](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.pairing) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     Q: &[EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") >,     P: &[EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") > ) -> [FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html "type halo2_ecc::bn254::FqPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#532-547) #### pub fn [pairing\_check](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.pairing_check) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     Q: &[EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") >,     P: &[EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") >,     T: &[EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") >,     S: &[EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") > ) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#synthetic-implementations) ------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-RefUnwindSafe-for-PairingChip%3C%27chip%2C%20F%3E) ### impl<'chip, F> [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [PairingChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html "struct halo2_ecc::bn254::pairing::PairingChip") <'chip, F>where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-Send-for-PairingChip%3C%27chip%2C%20F%3E) ### impl<'chip, F> [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [PairingChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html "struct halo2_ecc::bn254::pairing::PairingChip") <'chip, F> [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-Sync-for-PairingChip%3C%27chip%2C%20F%3E) ### impl<'chip, F> [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [PairingChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html "struct halo2_ecc::bn254::pairing::PairingChip") <'chip, F> [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-Unpin-for-PairingChip%3C%27chip%2C%20F%3E) ### impl<'chip, F> [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [PairingChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html "struct halo2_ecc::bn254::pairing::PairingChip") <'chip, F> [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-UnwindSafe-for-PairingChip%3C%27chip%2C%20F%3E) ### impl<'chip, F> [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [PairingChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html "struct halo2_ecc::bn254::pairing::PairingChip") <'chip, F>where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#blanket-implementations) -------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-Any-for-PairingChip%3C%27chip%2C%20F%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-Borrow%3CT%3E-for-PairingChip%3C%27chip%2C%20F%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-BorrowMut%3CT%3E-for-PairingChip%3C%27chip%2C%20F%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-Conv-for-PairingChip%3C%27chip%2C%20F%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-FmtForward-for-PairingChip%3C%27chip%2C%20F%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-From%3CT%3E-for-PairingChip%3C%27chip%2C%20F%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-Instrument-for-PairingChip%3C%27chip%2C%20F%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-Into%3CU%3E-for-PairingChip%3C%27chip%2C%20F%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-Pipe-for-PairingChip%3C%27chip%2C%20F%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-Pointable-for-PairingChip%3C%27chip%2C%20F%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-Same%3CT%3E-for-PairingChip%3C%27chip%2C%20F%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-PairingChip%3C%27chip%2C%20F%3E) ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for FCwhere     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Pt: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") ,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#454-462) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.select) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#464-473) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.select_by_indicator) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-Tap-for-PairingChip%3C%27chip%2C%20F%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-TryConv-for-PairingChip%3C%27chip%2C%20F%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-TryFrom%3CU%3E-for-PairingChip%3C%27chip%2C%20F%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-TryInto%3CU%3E-for-PairingChip%3C%27chip%2C%20F%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-VZip%3CV%3E-for-PairingChip%3C%27chip%2C%20F%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#impl-WithSubscriber-for-PairingChip%3C%27chip%2C%20F%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/struct.PairingChip.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # List of all items in this crate List of all items ================= ### Structs * [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html) * [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html) * [ContextCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.ContextCell.html) * [gates::builder::FlexGateConfigParams](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html) * [gates::builder::GateCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html) * [gates::builder::GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html) * [gates::builder::KeygenAssignments](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html) * [gates::builder::RangeCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html) * [gates::builder::RangeWithInstanceCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html) * [gates::builder::RangeWithInstanceConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html) * [gates::flex\_gate::BasicGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html) * [gates::flex\_gate::FlexGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html) * [gates::flex\_gate::GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html) * [gates::range::RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html) * [gates::range::RangeConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html) * [safe\_types::SafeType](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html) * [safe\_types::SafeTypeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html) ### Enums * [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html) * [gates::builder::CircuitBuilderStage](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html) * [gates::flex\_gate::GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html) * [gates::range::RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html) ### Traits * [gates::flex\_gate::GateInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html) * [gates::range::RangeInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html) * [utils::CurveAffineExt](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.CurveAffineExt.html) * [utils::ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html) ### Functions * [gates::builder::assign\_threads\_in](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/fn.assign_threads_in.html) * [gates::builder::parallelize\_in](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/fn.parallelize_in.html) * [utils::bigint\_to\_fe](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.bigint_to_fe.html) * [utils::biguint\_to\_fe](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.biguint_to_fe.html) * [utils::bit\_length](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.bit_length.html) * [utils::compose](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.compose.html) * [utils::decompose](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.decompose.html) * [utils::decompose\_bigint](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.decompose_bigint.html) * [utils::decompose\_bigint\_option](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.decompose_bigint_option.html) * [utils::decompose\_biguint](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.decompose_biguint.html) * [utils::decompose\_fe\_to\_u64\_limbs](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.decompose_fe_to_u64_limbs.html) * [utils::fe\_to\_bigint](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.fe_to_bigint.html) * [utils::fe\_to\_biguint](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.fe_to_biguint.html) * [utils::fs::gen\_srs](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fs/fn.gen_srs.html) * [utils::fs::read\_or\_create\_srs](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fs/fn.read_or_create_srs.html) * [utils::fs::read\_params](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fs/fn.read_params.html) * [utils::log2\_ceil](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.log2_ceil.html) * [utils::modulus](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.modulus.html) * [utils::power\_of\_two](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.power_of_two.html) * [utils::testing::check\_proof](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/testing/fn.check_proof.html) * [utils::testing::gen\_proof](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/testing/fn.gen_proof.html) * [utils::value\_to\_option](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.value_to_option.html) ### Type Definitions * [gates::builder::MultiPhaseThreadBreakPoints](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/type.MultiPhaseThreadBreakPoints.html) * [gates::builder::ThreadBreakPoints](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/type.ThreadBreakPoints.html) * [safe\_types::SafeBool](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeBool.html) * [safe\_types::SafeBytes32](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeBytes32.html) * [safe\_types::SafeUint128](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeUint128.html) * [safe\_types::SafeUint16](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeUint16.html) * [safe\_types::SafeUint256](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeUint256.html) * [safe\_types::SafeUint32](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeUint32.html) * [safe\_types::SafeUint64](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeUint64.html) * [safe\_types::SafeUint8](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeUint8.html) ### Trait Aliases * [utils::BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html) ### Constants * [SKIP\_FIRST\_PASS](https://axiom-crypto.github.io/halo2-lib/halo2_base/constant.SKIP_FIRST_PASS.html) * [gates::flex\_gate::MAX\_PHASE](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/constant.MAX_PHASE.html) --- # halo2_base::gates - Rust Module [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =============================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/mod.rs.html#1-13) · [\[−\]](javascript:void(0) "collapse all docs") Expand description Module that contains the main API for creating and working with circuits. [Re-exports](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html#reexports) --------------------------------------------------------------------------------------------- `pub use flex_gate::[GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "struct halo2_base::gates::flex_gate::GateChip") ;` `pub use flex_gate::[GateInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html "trait halo2_base::gates::flex_gate::GateInstructions") ;` `pub use range::[RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "struct halo2_base::gates::range::RangeChip") ;` `pub use range::[RangeInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html "trait halo2_base::gates::range::RangeInstructions") ;` [Modules](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html#modules) ---------------------------------------------------------------------------------------- [builder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/index.html "halo2_base::gates::builder mod") Module that helps auto-build circuits [flex\_gate](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/index.html "halo2_base::gates::flex_gate mod") Module implementing our simple custom gate and common functions using it [range](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/index.html "halo2_base::gates::range mod") Module using a single lookup table for range checks --- # EcPoint in halo2_ecc::ecc - Rust Struct [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#24-28) · [\[−\]](javascript:void(0) "collapse all docs") pub struct EcPoint { pub x: FieldPoint, pub y: FieldPoint, /* private fields */ } Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#fields) -------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#structfield.x) `x: FieldPoint`[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#structfield.y) `y: FieldPoint` Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#implementations) -------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#45-57) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#46-48) #### pub fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.new) (x: FieldPoint, y: FieldPoint) -> Self [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#50-52) #### pub fn [x](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.x) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) FieldPoint [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#54-56) #### pub fn [y](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.y) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) FieldPoint Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#trait-implementations) -------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#30-34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-Clone-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#31-33) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> Self Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#23) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-Debug-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#23) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#117-123) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-From%3C%26%27a%20EcPoint%3CF%2C%20%3CFC%20as%20FieldChip%3CF%3E%3E%3A%3AFieldPoint%3E%3E-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl<'a, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FC: [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") > [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&'a [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") \>> for [ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#120-122) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.from-4) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (pt: &'a [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") ) -> Self Converts to this type from the input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#37-43) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-From%3C%26%27a%20EcPoint%3CF%2C%20FieldPoint%3E%3E-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl<'a, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FieldPoint: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") \> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&'a [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") > for [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#40-42) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: &'a [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") ) -> Self Converts to this type from the input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#79-85) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-From%3C%26%27a%20StrictEcPoint%3CF%2C%20FC%3E%3E-for-EcPoint%3CF%2C%20FC%3A%3AFieldPoint%3E) ### impl<'a, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FC: [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") > [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&'a [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") > for [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#82-84) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.from-2) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: &'a [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") ) -> Self Converts to this type from the input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#125-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-From%3CComparableEcPoint%3CF%2C%20FC%3E%3E-for-EcPoint%3CF%2C%20FC%3A%3AFieldPoint%3E) ### impl> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") > for [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#128-133) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.from-5) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (pt: [ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") ) -> Self Converts to this type from the input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#101-107) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-From%3CEcPoint%3CF%2C%20%3CFC%20as%20FieldChip%3CF%3E%3E%3A%3AFieldPoint%3E%3E-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") \>> for [ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#104-106) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.from-3) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (pt: [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") ) -> Self Converts to this type from the input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#73-77) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-From%3CStrictEcPoint%3CF%2C%20FC%3E%3E-for-EcPoint%3CF%2C%20FC%3A%3AFieldPoint%3E) ### impl> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") > for [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#74-76) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.from-1) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") ) -> Self Converts to this type from the input type. Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#synthetic-implementations) ----------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-RefUnwindSafe-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") ,     FieldPoint: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-Send-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") where     FieldPoint: [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-Sync-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") where     FieldPoint: [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-Unpin-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") ,     FieldPoint: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-UnwindSafe-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") ,     FieldPoint: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#blanket-implementations) ------------------------------------------------------------------------------------------------------------------------------ [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-Any-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-Borrow%3CT%3E-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-BorrowMut%3CT%3E-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-Conv-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-FmtForward-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-From%3CT%3E-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.from-6) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-Instrument-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-Into%3CU%3E-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-Pipe-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-Pointable-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-Same%3CT%3E-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for FCwhere     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Pt: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") ,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#454-462) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.select) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#464-473) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.select_by_indicator) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-Tap-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-ToOwned-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-TryConv-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-TryFrom%3CU%3E-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-TryInto%3CU%3E-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-VZip%3CV%3E-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#impl-WithSubscriber-for-EcPoint%3CF%2C%20FieldPoint%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # EccChip in halo2_ecc::ecc - Rust Struct [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[EccChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#814-817) · [\[−\]](javascript:void(0) "collapse all docs") pub struct EccChip<'chip, F: PrimeField, FC: FieldChip> { pub field_chip: &'chip FC, /* private fields */ } Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#fields) -------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#structfield.field_chip) `field_chip: [&'chip](https://doc.rust-lang.org/nightly/std/primitive.reference.html) FC` Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#implementations) -------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#819-1010) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl<'chip, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FC: [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") > [EccChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html "struct halo2_ecc::ecc::EccChip") <'chip, F, FC> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#820-822) #### pub fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.new) (field\_chip: [&'chip](https://doc.rust-lang.org/nightly/std/primitive.reference.html) FC) -> Self [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#824-826) #### pub fn [field\_chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.field_chip) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) FC [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#829-840) #### pub fn [load\_private](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.load_private) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     (x, y): (FC::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") , FC::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") ) ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") where     C: CurveAffineExt, Load affine point as private witness. Constrains witness to lie on curve. Does not allow (0, 0) point, [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#843-852) #### pub fn [load\_private\_unchecked](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.load_private_unchecked) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     (x, y): (FC::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") , FC::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") ) ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") Does not constrain witness to lie on curve [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#856-865) #### pub fn [assign\_point](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.assign_point) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     g: C ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") where     C: CurveAffineExt,     C::Base: PrimeField, Load affine point as private witness. Constrains witness to either lie on curve or be the point at infinity, represented in affine coordinates as (0, 0). [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#868-878) #### pub fn [assign\_point\_unchecked](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.assign_point_unchecked) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     g: C ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") where     C: CurveAffineExt, Does not constrain witness to lie on curve [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#880-889) #### pub fn [assign\_constant\_point](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.assign_constant_point) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     g: C ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") where     C: CurveAffineExt, [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#891-896) #### pub fn [load\_random\_point](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.load_random_point) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") where     C: CurveAffineExt, [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#898-903) #### pub fn [assert\_is\_on\_curve](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.assert_is_on_curve) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     P: &[EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") )where     C: CurveAffine, [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#905-927) #### pub fn [is\_on\_curve\_or\_infinity](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.is_on_curve_or_infinity) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     P: &[EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") where     C: CurveAffine, [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#929-936) #### pub fn [negate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.negate) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     P: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") > ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#940-948) #### pub fn [add\_unequal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.add_unequal) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     P: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") >,     Q: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") >,     is\_strict: [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") Assumes that P.x != Q.x If `is_strict == true`, then actually constrains that `P.x != Q.x` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#952-960) #### pub fn [sub\_unequal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.sub_unequal) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     P: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") >,     Q: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") >,     is\_strict: [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") Assumes that P.x != Q.x Otherwise will panic [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#962-968) #### pub fn [double](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.double) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     P: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") > ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#970-980) #### pub fn [is\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.is_equal) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     P: [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") ,     Q: [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#982-990) #### pub fn [assert\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.assert_equal) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     P: [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") ,     Q: [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") ) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#993-1009) #### pub fn [sum](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.sum) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     points: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") > ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") where     C: CurveAffineExt, None of elements in `points` can be point at infinity. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#1012-1104) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-EccChip%3C%27chip%2C%20F%2C%20FC%3E-1) ### impl<'chip, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FC: [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") > [EccChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html "struct halo2_ecc::ecc::EccChip") <'chip, F, FC>where     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#1016-1024) #### pub fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     P: [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") ,     Q: [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") ,     condition: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#1027-1039) #### pub fn [scalar\_mult](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.scalar_mult) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     P: [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") ,     scalar: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") >,     max\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ,     window\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") where     C: CurveAffineExt, See [`scalar_multiply`](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.scalar_multiply.html "scalar_multiply") for more details. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#1043-1056) #### pub fn [variable\_base\_msm](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.variable_base_msm) (     &self,     thread\_pool: &mut [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") ,     P: &\[[EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint")\ \],     scalars: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") >>,     max\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") where     C: CurveAffineExt,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , See [`pippenger::multi_exp_par`](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/pippenger/fn.multi_exp_par.html "pippenger::multi_exp_par") for more details. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#1059-1103) #### pub fn [variable\_base\_msm\_in](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.variable_base_msm_in) (     &self,     builder: &mut [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") ,     P: &\[[EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint")\ \],     scalars: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") >>,     max\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ,     window\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ,     phase: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") where     C: CurveAffineExt,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#1106-1201) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-EccChip%3C%27chip%2C%20F%2C%20FC%3E-2) ### impl<'chip, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FC: [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") > [EccChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html "struct halo2_ecc::ecc::EccChip") <'chip, F, FC> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#1109-1129) #### pub fn [fixed\_base\_scalar\_mult](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.fixed_base_scalar_mult) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     point: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) C,     scalar: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") >,     max\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ,     window\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") where     C: CurveAffineExt,     FC: [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") + [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , See [`fixed_base::scalar_multiply`](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fixed_base/fn.scalar_multiply.html "fixed_base::scalar_multiply") for more details. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#1132-1144) #### pub fn [fixed\_base\_msm](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.fixed_base_msm) (     &self,     builder: &mut [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") ,     points: &[\[C\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) ,     scalars: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") >>,     max\_scalar\_bits\_per\_cell: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") where     C: CurveAffineExt,     FC: [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") + [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#1151-1200) #### pub fn [fixed\_base\_msm\_in](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.fixed_base_msm_in) (     &self,     builder: &mut [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") ,     points: &[\[C\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) ,     scalars: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") >>,     max\_scalar\_bits\_per\_cell: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ,     clump\_factor: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ,     phase: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") where     C: CurveAffineExt,     FC: [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") + [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , `clump_factor = 0` means auto-calculate The user should filter out base points that are identity beforehand; we do not separately do this here Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#trait-implementations) -------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#813) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-Clone-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl<'chip, F: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") + [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FC: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") + [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") > [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [EccChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html "struct halo2_ecc::ecc::EccChip") <'chip, F, FC> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#813) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [EccChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html "struct halo2_ecc::ecc::EccChip") <'chip, F, FC> Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#813) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-Debug-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl<'chip, F: [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") + [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FC: [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") + [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") > [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [EccChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html "struct halo2_ecc::ecc::EccChip") <'chip, F, FC> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#813) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#synthetic-implementations) ----------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-RefUnwindSafe-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl<'chip, F, FC> [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [EccChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html "struct halo2_ecc::ecc::EccChip") <'chip, F, FC>where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") ,     FC: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-Send-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl<'chip, F, FC> [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [EccChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html "struct halo2_ecc::ecc::EccChip") <'chip, F, FC> [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-Sync-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl<'chip, F, FC> [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [EccChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html "struct halo2_ecc::ecc::EccChip") <'chip, F, FC> [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-Unpin-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl<'chip, F, FC> [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [EccChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html "struct halo2_ecc::ecc::EccChip") <'chip, F, FC>where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-UnwindSafe-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl<'chip, F, FC> [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [EccChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html "struct halo2_ecc::ecc::EccChip") <'chip, F, FC>where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") ,     FC: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#blanket-implementations) ------------------------------------------------------------------------------------------------------------------------------ [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-Any-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-Borrow%3CT%3E-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-BorrowMut%3CT%3E-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-Conv-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-FmtForward-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-From%3CT%3E-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-Instrument-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-Into%3CU%3E-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-Pipe-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-Pointable-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-Same%3CT%3E-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for FCwhere     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Pt: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") ,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#454-462) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.select-1) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#464-473) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.select_by_indicator) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-Tap-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-ToOwned-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-TryConv-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-TryFrom%3CU%3E-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-TryInto%3CU%3E-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-VZip%3CV%3E-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#impl-WithSubscriber-for-EccChip%3C%27chip%2C%20F%2C%20FC%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EccChip.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # Fp2Chip in halo2_ecc::bn254 - Rust Type Definition [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bn254](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html) ::[Fp2Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.Fp2Chip.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/mod.rs.html#12) · [\[−\]](javascript:void(0) "collapse all docs") pub type Fp2Chip<'chip, F> = Fp2Chip<'chip, F, FpChip<'chip, F>, Fq2>; --- # halo2_ecc::ecc::ecdsa - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[ecdsa](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/ecdsa/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =========================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/ecdsa.rs.html#1-104) · [\[−\]](javascript:void(0) "collapse all docs") [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/ecdsa/index.html#functions) ----------------------------------------------------------------------------------------------- [ecdsa\_verify\_no\_pubkey\_check](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/ecdsa/fn.ecdsa_verify_no_pubkey_check.html "halo2_ecc::ecc::ecdsa::ecdsa_verify_no_pubkey_check fn") **WARNING**: Only use this function if `1 / (p - n)` is very small (e.g., < 2\-100) `pubkey` should not be the identity point --- # FpChip in halo2_ecc::bn254 - Rust Type Definition [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bn254](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html) ::[FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FpChip.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =========================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/mod.rs.html#9) · [\[−\]](javascript:void(0) "collapse all docs") pub type FpChip<'range, F> = FpChip<'range, F, Fq>; --- # SKIP_FIRST_PASS in halo2_base - Rust Constant [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[SKIP\_FIRST\_PASS](https://axiom-crypto.github.io/halo2-lib/halo2_base/constant.SKIP_FIRST_PASS.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/lib.rs.html#51) · [\[−\]](javascript:void(0) "collapse all docs") pub const SKIP_FIRST_PASS: bool = false; Expand description Constant representing whether the Layouter calls `synthesize` once just to get region shape. --- # halo2_ecc::bigint::check_carry_mod_to_zero - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[check\_carry\_mod\_to\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/check_carry_mod_to_zero/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/check_carry_mod_to_zero.rs.html#1-125) · [\[−\]](javascript:void(0) "collapse all docs") [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/check_carry_mod_to_zero/index.html#functions) -------------------------------------------------------------------------------------------------------------------- [crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/check_carry_mod_to_zero/fn.crt.html "halo2_ecc::bigint::check_carry_mod_to_zero::crt fn") --- # halo2_ecc::ecc::fixed_base - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[fixed\_base](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fixed_base/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ====================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/fixed_base.rs.html#1-219) · [\[−\]](javascript:void(0) "collapse all docs") [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fixed_base/index.html#functions) ---------------------------------------------------------------------------------------------------- [msm\_par](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fixed_base/fn.msm_par.html "halo2_ecc::ecc::fixed_base::msm_par fn") Assumptions [scalar\_multiply](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fixed_base/fn.scalar_multiply.html "halo2_ecc::ecc::fixed_base::scalar_multiply fn") Computes `[scalar] * P` on y^2 = x^3 + b where `P` is fixed (constant) --- # halo2_ecc::fields::fp - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html) ::[fp](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#1-474) · [\[−\]](javascript:void(0) "collapse all docs") [Structs](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/index.html#structs) ------------------------------------------------------------------------------------------- [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "halo2_ecc::fields::fp::FpChip struct") [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "halo2_ecc::fields::fp::Reduced struct") Wrapper around `FieldPoint` to guarantee this is a “reduced” representation of an `Fp` field element. A reduced representation guarantees that there is a _unique_ representation of each field element. Typically this means Uints that are less than the modulus. [Type Definitions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/index.html#types) -------------------------------------------------------------------------------------------------- [BaseFieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/type.BaseFieldChip.html "halo2_ecc::fields::fp::BaseFieldChip type") [FpConfig](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/type.FpConfig.html "halo2_ecc::fields::fp::FpConfig type") --- # FpPoint in halo2_ecc::bn254 - Rust Type Definition [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bn254](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html) ::[FpPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FpPoint.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/mod.rs.html#10) · [\[−\]](javascript:void(0) "collapse all docs") pub type FpPoint = ProperCrtUint; --- # halo2_ecc::bigint::check_carry_to_zero - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[check\_carry\_to\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/check_carry_to_zero/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/check_carry_to_zero.rs.html#1-86) · [\[−\]](javascript:void(0) "collapse all docs") [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/check_carry_to_zero/index.html#functions) ---------------------------------------------------------------------------------------------------------------- [truncate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/check_carry_to_zero/fn.truncate.html "halo2_ecc::bigint::check_carry_to_zero::truncate fn") --- # halo2_ecc::fields::fp2 - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html) ::[fp2](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#1-131) · [\[−\]](javascript:void(0) "collapse all docs") [Structs](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/index.html#structs) -------------------------------------------------------------------------------------------- [Fp2Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html "halo2_ecc::fields::fp2::Fp2Chip struct") Represent Fp2 point as `FieldVector` with degree = 2 `Fp2 = Fp[u] / (u^2 + 1)` This implementation assumes p = 3 (mod 4) in order for the polynomial u^2 + 1 to be irreducible over Fp; i.e., in order for -1 to not be a square (quadratic residue) in Fp This means we store an Fp2 point as `a_0 + a_1 * u` where `a_0, a_1 in Fp` --- # halo2_ecc::ecc::pippenger - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[pippenger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/pippenger/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/pippenger.rs.html#1-341) · [\[−\]](javascript:void(0) "collapse all docs") [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/pippenger/index.html#functions) --------------------------------------------------------------------------------------------------- [multi\_exp\_par](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/pippenger/fn.multi_exp_par.html "halo2_ecc::ecc::pippenger::multi_exp_par fn") Multi-thread witness generation for multi-scalar multiplication. --- # FqPoint in halo2_ecc::bn254 - Rust Type Definition [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bn254](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html) ::[FqPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/type.FqPoint.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/mod.rs.html#11) · [\[−\]](javascript:void(0) "collapse all docs") pub type FqPoint = FieldVector>; --- # halo2_ecc::bigint::mul_no_carry - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[mul\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/mul_no_carry/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ==================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mul_no_carry.rs.html#1-49) · [\[−\]](javascript:void(0) "collapse all docs") [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/mul_no_carry/index.html#functions) --------------------------------------------------------------------------------------------------------- [crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/mul_no_carry/fn.crt.html "halo2_ecc::bigint::mul_no_carry::crt fn") [truncate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/mul_no_carry/fn.truncate.html "halo2_ecc::bigint::mul_no_carry::truncate fn") Assumptions --- # FieldVectorChip in halo2_ecc::fields::vector - Rust Struct [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html) ::[vector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/index.html) ::[FieldVectorChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#66-69) · [\[−\]](javascript:void(0) "collapse all docs") pub struct FieldVectorChip<'fp, F: PrimeField, FpChip: FieldChip> { pub fp_chip: &'fp FpChip, /* private fields */ } Expand description Contains common functionality for vector operations that can be derived from those of the underlying `FpChip` Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#fields) -------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#structfield.fp_chip) `fp_chip: [&'fp](https://doc.rust-lang.org/nightly/std/primitive.reference.html) FpChip` Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#implementations) -------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#71-347) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl<'fp, F, FpChip> [FieldVectorChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html "struct halo2_ecc::fields::vector::FieldVectorChip") <'fp, F, FpChip>where     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     FpChip: [PrimeFieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html "trait halo2_ecc::fields::PrimeFieldChip") ,     FpChip::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") : [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#77-79) #### pub fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.new) (fp\_chip: [&'fp](https://doc.rust-lang.org/nightly/std/primitive.reference.html) FpChip) -> Self [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#81-83) #### pub fn [gate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.gate) (&self) -> &impl [GateInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html "trait halo2_base::gates::flex_gate::GateInstructions") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#85-98) #### pub fn [fp\_mul\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.fp_mul_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     fp\_point: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") where     FP: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#100-113) #### pub fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     b: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") where     FpChip: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#115-124) #### pub fn [load\_private](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.load_private) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     fe: FieldExt ) -> [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") where     FieldExt: [FieldExtConstructor](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html "trait halo2_ecc::fields::FieldExtConstructor") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#126-135) #### pub fn [load\_constant](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.load_constant) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     c: FieldExt ) -> [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") where     FieldExt: [FieldExtConstructor](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html "trait halo2_ecc::fields::FieldExtConstructor") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#138-151) #### pub fn [add\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.add_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     b: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ) -> [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") where     A: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     B: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#153-170) #### pub fn [add\_constant\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.add_constant_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     c: FieldExt ) -> [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") where     A: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     FieldExt: [FieldExtConstructor](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html "trait halo2_ecc::fields::FieldExtConstructor") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#172-185) #### pub fn [sub\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.sub_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     b: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ) -> [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") where     A: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     B: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#187-193) #### pub fn [negate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.negate) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ) -> [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#195-205) #### pub fn [scalar\_mul\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.scalar_mul_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     c: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) ) -> [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") where     A: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#207-224) #### pub fn [scalar\_mul\_and\_add\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.scalar_mul_and_add_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     b: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     c: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) ) -> [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") where     A: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     B: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#226-234) #### pub fn [check\_carry\_mod\_to\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.check_carry_mod_to_zero) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#236-242) #### pub fn [carry\_mod](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.carry_mod) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ) -> [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#244-255) #### pub fn [range\_check](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.range_check) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     max\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) )where     A: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#257-263) #### pub fn [enforce\_less\_than](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.enforce_less_than) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ) -> [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#265-281) #### pub fn [is\_soft\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.is_soft_zero) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#283-299) #### pub fn [is\_soft\_nonzero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.is_soft_nonzero) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#301-317) #### pub fn [is\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.is_zero) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#319-335) #### pub fn [is\_equal\_unenforced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.is_equal_unenforced) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     b: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#337-346) #### pub fn [assert\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.assert_equal) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     b: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ) Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#trait-implementations) -------------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#65) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-Clone-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl<'fp, F: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") + [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FpChip: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") + [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") > [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [FieldVectorChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html "struct halo2_ecc::fields::vector::FieldVectorChip") <'fp, F, FpChip> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#65) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [FieldVectorChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html "struct halo2_ecc::fields::vector::FieldVectorChip") <'fp, F, FpChip> Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#65) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-Debug-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl<'fp, F: [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") + [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FpChip: [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") + [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") > [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [FieldVectorChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html "struct halo2_ecc::fields::vector::FieldVectorChip") <'fp, F, FpChip> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#65) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#65) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-Copy-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl<'fp, F: [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") + [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FpChip: [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") + [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") > [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") for [FieldVectorChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html "struct halo2_ecc::fields::vector::FieldVectorChip") <'fp, F, FpChip> Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#synthetic-implementations) ----------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-RefUnwindSafe-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl<'fp, F, FpChip> [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [FieldVectorChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html "struct halo2_ecc::fields::vector::FieldVectorChip") <'fp, F, FpChip>where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") ,     FpChip: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-Send-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl<'fp, F, FpChip> [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [FieldVectorChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html "struct halo2_ecc::fields::vector::FieldVectorChip") <'fp, F, FpChip> [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-Sync-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl<'fp, F, FpChip> [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [FieldVectorChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html "struct halo2_ecc::fields::vector::FieldVectorChip") <'fp, F, FpChip> [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-Unpin-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl<'fp, F, FpChip> [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [FieldVectorChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html "struct halo2_ecc::fields::vector::FieldVectorChip") <'fp, F, FpChip>where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-UnwindSafe-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl<'fp, F, FpChip> [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [FieldVectorChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html "struct halo2_ecc::fields::vector::FieldVectorChip") <'fp, F, FpChip>where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") ,     FpChip: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#blanket-implementations) ------------------------------------------------------------------------------------------------------------------------------------------------ [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-Any-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-Borrow%3CT%3E-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-BorrowMut%3CT%3E-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-Conv-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-FmtForward-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-From%3CT%3E-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-Instrument-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-Into%3CU%3E-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-Pipe-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-Pointable-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-Same%3CT%3E-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for FCwhere     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Pt: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") ,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#454-462) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.select-1) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#464-473) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.select_by_indicator) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-Tap-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-ToOwned-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-TryConv-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-TryFrom%3CU%3E-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-TryInto%3CU%3E-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-VZip%3CV%3E-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#impl-WithSubscriber-for-FieldVectorChip%3C%27fp%2C%20F%2C%20FpChip%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # BigIntStrategy in halo2_ecc::bigint - Rust Enum [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[BigIntStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#27-34) · [\[−\]](javascript:void(0) "collapse all docs") pub enum BigIntStrategy { Simple, } Variants[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#variants) -------------------------------------------------------------------------------------------------------- ### [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#variant.Simple) `Simple` Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#trait-implementations) ---------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#26) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-Clone-for-BigIntStrategy) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [BigIntStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html "enum halo2_ecc::bigint::BigIntStrategy") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#26) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [BigIntStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html "enum halo2_ecc::bigint::BigIntStrategy") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#26) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-Debug-for-BigIntStrategy) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [BigIntStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html "enum halo2_ecc::bigint::BigIntStrategy") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#26) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#26) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-Default-for-BigIntStrategy) ### impl [Default](https://doc.rust-lang.org/nightly/core/default/trait.Default.html "trait core::default::Default") for [BigIntStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html "enum halo2_ecc::bigint::BigIntStrategy") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#26) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.default) #### fn [default](https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default) () -> [BigIntStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html "enum halo2_ecc::bigint::BigIntStrategy") Returns the “default value” for a type. [Read more](https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#26) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-PartialEq%3CBigIntStrategy%3E-for-BigIntStrategy) ### impl [PartialEq](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html "trait core::cmp::PartialEq") <[BigIntStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html "enum halo2_ecc::bigint::BigIntStrategy") \> for [BigIntStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html "enum halo2_ecc::bigint::BigIntStrategy") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#26) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.eq) #### fn [eq](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq) (&self, other: &[BigIntStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html "enum halo2_ecc::bigint::BigIntStrategy") ) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests for `self` and `other` values to be equal, and is used by `==`. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#227) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.ne) #### fn [ne](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne) (&self, other: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Rhs) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests for `!=`. The default implementation is almost always sufficient, and should not be overridden without very good reason. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mod.rs.html#26) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-StructuralPartialEq-for-BigIntStrategy) ### impl [StructuralPartialEq](https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html "trait core::marker::StructuralPartialEq") for [BigIntStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html "enum halo2_ecc::bigint::BigIntStrategy") Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#synthetic-implementations) ------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-RefUnwindSafe-for-BigIntStrategy) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [BigIntStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html "enum halo2_ecc::bigint::BigIntStrategy") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-Send-for-BigIntStrategy) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [BigIntStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html "enum halo2_ecc::bigint::BigIntStrategy") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-Sync-for-BigIntStrategy) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [BigIntStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html "enum halo2_ecc::bigint::BigIntStrategy") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-Unpin-for-BigIntStrategy) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [BigIntStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html "enum halo2_ecc::bigint::BigIntStrategy") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-UnwindSafe-for-BigIntStrategy) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [BigIntStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html "enum halo2_ecc::bigint::BigIntStrategy") Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#blanket-implementations) -------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-Any-for-BigIntStrategy) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-Borrow%3CT%3E-for-BigIntStrategy) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-BorrowMut%3CT%3E-for-BigIntStrategy) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-Conv-for-BigIntStrategy) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-FmtForward-for-BigIntStrategy) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-From%3CT%3E-for-BigIntStrategy) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-Instrument-for-BigIntStrategy) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-Into%3CU%3E-for-BigIntStrategy) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-Pipe-for-BigIntStrategy) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-Pointable-for-BigIntStrategy) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-Same%3CT%3E-for-BigIntStrategy) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-BigIntStrategy) ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for FCwhere     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Pt: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") ,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#454-462) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.select) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#464-473) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.select_by_indicator) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-Tap-for-BigIntStrategy) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-ToOwned-for-BigIntStrategy) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-TryConv-for-BigIntStrategy) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-TryFrom%3CU%3E-for-BigIntStrategy) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-TryInto%3CU%3E-for-BigIntStrategy) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-VZip%3CV%3E-for-BigIntStrategy) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#impl-WithSubscriber-for-BigIntStrategy) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/enum.BigIntStrategy.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # halo2_ecc::fields::fp12 - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html) ::[fp12](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#1-247) · [\[−\]](javascript:void(0) "collapse all docs") [Structs](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/index.html#structs) --------------------------------------------------------------------------------------------- [Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html "halo2_ecc::fields::fp12::Fp12Chip struct") Represent Fp12 point as FqPoint with degree = 12 `Fp12 = Fp2[w] / (w^6 - u - xi)` This implementation assumes p = 3 (mod 4) in order for the polynomial u^2 + 1 to be irreducible over Fp; i.e., in order for -1 to not be a square (quadratic residue) in Fp This means we store an Fp12 point as `\sum_{i = 0}^6 (a_{i0} + a_{i1} * u) * w^i` This is encoded in an FqPoint of degree 12 as `(a_{00}, ..., a_{50}, a_{01}, ..., a_{51})` [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/index.html#functions) ------------------------------------------------------------------------------------------------- [mul\_no\_carry\_w6](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/fn.mul_no_carry_w6.html "halo2_ecc::fields::fp12::mul_no_carry_w6 fn") multiply Fp2 elts: (a0 + a1 \* u) \* (XI0 + u) without carry --- # SECP_B in halo2_ecc::secp256k1 - Rust Constant [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[secp256k1](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/index.html) ::[SECP\_B](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/constant.SECP_B.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ===================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/secp256k1/mod.rs.html#9) · [\[−\]](javascript:void(0) "collapse all docs") pub const SECP_B: u64 = 7; --- # halo2_ecc::bigint::negative - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[negative](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/negative/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/negative.rs.html#1-11) · [\[−\]](javascript:void(0) "collapse all docs") [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/negative/index.html#functions) ----------------------------------------------------------------------------------------------------- [assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/negative/fn.assign.html "halo2_ecc::bigint::negative::assign fn") --- # FpChip in halo2_ecc::secp256k1 - Rust Type Definition [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[secp256k1](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/index.html) ::[FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/type.FpChip.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/secp256k1/mod.rs.html#6) · [\[−\]](javascript:void(0) "collapse all docs") pub type FpChip<'range, F> = FpChip<'range, F, Fp>; --- # halo2_ecc::fields::vector - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html) ::[vector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ====================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/vector.rs.html#1-495) · [\[−\]](javascript:void(0) "collapse all docs") [Structs](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/index.html#structs) ----------------------------------------------------------------------------------------------- [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "halo2_ecc::fields::vector::FieldVector struct") A fixed length vector of `FieldPoint`s [FieldVectorChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVectorChip.html "halo2_ecc::fields::vector::FieldVectorChip struct") Contains common functionality for vector operations that can be derived from those of the underlying `FpChip` --- # halo2_ecc::bigint::scalar_mul_and_add_no_carry - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[scalar\_mul\_and\_add\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_and_add_no_carry/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ===================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/scalar_mul_and_add_no_carry.rs.html#1-58) · [\[−\]](javascript:void(0) "collapse all docs") [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_and_add_no_carry/index.html#functions) ------------------------------------------------------------------------------------------------------------------------ [assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_and_add_no_carry/fn.assign.html "halo2_ecc::bigint::scalar_mul_and_add_no_carry::assign fn") compute a \* c + b = b + a \* c [crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_and_add_no_carry/fn.crt.html "halo2_ecc::bigint::scalar_mul_and_add_no_carry::crt fn") compute a \* c + b = b + a \* c --- # FqChip in halo2_ecc::secp256k1 - Rust Type Definition [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[secp256k1](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/index.html) ::[FqChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/type.FqChip.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/secp256k1/mod.rs.html#7) · [\[−\]](javascript:void(0) "collapse all docs") pub type FqChip<'range, F> = FpChip<'range, F, Fq>; --- # check_is_on_curve in halo2_ecc::ecc - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[check\_is\_on\_curve](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.check_is_on_curve.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ===================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#588-601) · [\[−\]](javascript:void(0) "collapse all docs") pub fn check_is_on_curve(    chip: &FC,    ctx: &mut Context,    P: &EcPoint)where    F: PrimeField,    FC: FieldChip,    C: CurveAffine, Expand description Checks that `P` is indeed a point on the elliptic curve `C`. --- # FieldExtConstructor in halo2_ecc::fields - Rust Trait [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html) ::[FieldExtConstructor](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =============================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#310-314) · [\[−\]](javascript:void(0) "collapse all docs") pub trait FieldExtConstructor { fn new(c: [Fp; DEGREE]) -> Self; fn coeffs(&self) -> Vec; } Required Methods[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html#required-methods) ------------------------------------------------------------------------------------------------------------------------------ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#311) #### fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html#tymethod.new) (c: [\[Fp; DEGREE\]](https://doc.rust-lang.org/nightly/std/primitive.array.html) ) -> Self [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#313) #### fn [coeffs](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html#tymethod.coeffs) (&self) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") Implementations on Foreign Types[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html#foreign-impls) ------------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#223-246) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html#impl-FieldExtConstructor%3CFq%2C%2012%3E-for-Fq12) ### impl [FieldExtConstructor](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html "trait halo2_ecc::fields::FieldExtConstructor") for Fq12 [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#224-237) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html#method.new) #### fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html#tymethod.new) (c: \[Fq; [12](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \]) -> Self [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#239-245) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html#method.coeffs) #### fn [coeffs](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html#tymethod.coeffs) (&self) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#122-130) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html#impl-FieldExtConstructor%3CFq%2C%202%3E-for-Fq2) ### impl [FieldExtConstructor](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html "trait halo2_ecc::fields::FieldExtConstructor") for Fq2 [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#123-125) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html#method.new-1) #### fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html#tymethod.new) (c: \[Fq; [2](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \]) -> Self [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#127-129) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html#method.coeffs-1) #### fn [coeffs](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html#tymethod.coeffs) (&self) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") Implementors[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html#implementors) ---------------------------------------------------------------------------------------------------------------------- --- # ComparableEcPoint in halo2_ecc::ecc - Rust Enum [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#90-93) · [\[−\]](javascript:void(0) "collapse all docs") pub enum ComparableEcPoint> { Strict(StrictEcPoint), NonStrict(EcPoint), } Expand description An elliptic curve point where the x-coordinate has already been constrained to be reduced or not. In the reduced case one can more optimally compare equality of x-coordinates. Variants[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#variants) -------------------------------------------------------------------------------------------------------- ### [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#variant.Strict) `Strict([StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") )` ### [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#variant.NonStrict) `NonStrict([EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") )` Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#trait-implementations) ---------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#89) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-Clone-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl> [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") where     FC::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") : [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#89) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#89) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-Debug-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl> [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") where     FC::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") : [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#89) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#117-123) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-From%3C%26%27a%20EcPoint%3CF%2C%20%3CFC%20as%20FieldChip%3CF%3E%3E%3A%3AFieldPoint%3E%3E-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl<'a, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FC: [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") > [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&'a [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") \>> for [ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#120-122) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.from-3) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (pt: &'a [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") ) -> Self Converts to this type from the input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#109-115) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-From%3C%26%27a%20StrictEcPoint%3CF%2C%20FC%3E%3E-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl<'a, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , FC: [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") > [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&'a [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") > for [ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#112-114) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.from-2) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (pt: &'a [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") ) -> Self Converts to this type from the input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#125-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-From%3CComparableEcPoint%3CF%2C%20FC%3E%3E-for-EcPoint%3CF%2C%20FC%3A%3AFieldPoint%3E) ### impl> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") > for [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#128-133) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.from-4) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (pt: [ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") ) -> Self Converts to this type from the input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#101-107) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-From%3CEcPoint%3CF%2C%20%3CFC%20as%20FieldChip%3CF%3E%3E%3A%3AFieldPoint%3E%3E-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") \>> for [ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#104-106) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.from-1) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (pt: [EcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.EcPoint.html "struct halo2_ecc::ecc::EcPoint") ) -> Self Converts to this type from the input type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#95-99) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-From%3CStrictEcPoint%3CF%2C%20FC%3E%3E-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") > for [ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#96-98) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (pt: [StrictEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/struct.StrictEcPoint.html "struct halo2_ecc::ecc::StrictEcPoint") ) -> Self Converts to this type from the input type. Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#synthetic-implementations) ------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-RefUnwindSafe-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") ,     >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") : [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") ,     >::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") : [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-Send-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-Sync-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-Unpin-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") ,     >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") : [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") ,     >::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") : [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-UnwindSafe-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [ComparableEcPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html "enum halo2_ecc::ecc::ComparableEcPoint") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") ,     >::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") : [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") ,     >::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") : [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#blanket-implementations) -------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-Any-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-Borrow%3CT%3E-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-BorrowMut%3CT%3E-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-Conv-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-FmtForward-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-From%3CT%3E-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.from-5) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-Instrument-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-Into%3CU%3E-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-Pipe-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-Pointable-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-Same%3CT%3E-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for FCwhere     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Pt: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") ,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#454-462) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.select) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#464-473) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.select_by_indicator) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-Tap-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-ToOwned-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-TryConv-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-TryFrom%3CU%3E-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-TryInto%3CU%3E-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-VZip%3CV%3E-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#impl-WithSubscriber-for-ComparableEcPoint%3CF%2C%20FC%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/enum.ComparableEcPoint.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # halo2_ecc::bigint::scalar_mul_no_carry - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[scalar\_mul\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_no_carry/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/scalar_mul_no_carry.rs.html#1-39) · [\[−\]](javascript:void(0) "collapse all docs") [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_no_carry/index.html#functions) ---------------------------------------------------------------------------------------------------------------- [assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_no_carry/fn.assign.html "halo2_ecc::bigint::scalar_mul_no_carry::assign fn") [crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_no_carry/fn.crt.html "halo2_ecc::bigint::scalar_mul_no_carry::crt fn") --- # ec_add_unequal in halo2_ecc::ecc - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[ec\_add\_unequal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_add_unequal.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#152-178) · [\[−\]](javascript:void(0) "collapse all docs") pub fn ec_add_unequal>(    chip: &FC,    ctx: &mut Context,    P: impl Into>,    Q: impl Into>,    is_strict: bool) -> EcPoint Expand description If `is_strict = true`, then this function constrains that `P.x != Q.x`. If you are calling this with `is_strict = false`, you must ensure that `P.x != Q.x` by some external logic (such as a mathematical theorem). [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_add_unequal.html#assumptions) --------------------------------------------------------------------------------------------------------- * Neither `P` nor `Q` is the point at infinity (undefined behavior otherwise) --- # ScalarField in halo2_base::utils - Rust Trait [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#14-34) · [\[−\]](javascript:void(0) "collapse all docs") pub trait ScalarField: FieldExt + Hash { fn to_u64_limbs(self, num_limbs: usize, bit_len: usize) -> Vec; fn to_bytes_le(&self) -> Vec; fn from_bytes_le(bytes: &[u8]) -> Self { ... } } Expand description Helper trait to represent a field element that can be converted into [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html "u64") limbs. Note: Since the number of bits necessary to represent a field element is larger than the number of bits in a u64, we decompose the integer representation of the field element into multiple [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html "u64") values e.g. `limbs`. Required Methods[](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html#required-methods) ---------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#20) #### fn [to\_u64\_limbs](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html#tymethod.to_u64_limbs) (self, num\_limbs: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) , bit\_len: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) \> Returns the base `2bit_len` little endian representation of the [ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html "ScalarField") element up to `num_limbs` number of limbs (truncates any extra limbs). Assumes `bit_len < 64`. * `num_limbs`: number of limbs to return * `bit_len`: number of bits in each limb [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#23) #### fn [to\_bytes\_le](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html#tymethod.to_bytes_le) (&self) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) \> Returns the little endian byte representation of the element. Provided Methods[](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html#provided-methods) ---------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#29-33) #### fn [from\_bytes\_le](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html#method.from_bytes_le) (bytes: &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) -> Self Creates a field element from a little endian byte representation. The default implementation assumes that `PrimeField::from_repr` is implemented for little-endian. It should be overriden if this is not the case. Implementors[](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html#implementors) -------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#318-334) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html#impl-ScalarField-for-F) ### impl [ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html "trait halo2_base::utils::ScalarField") for Fwhere     F: FieldExt + [Hash](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html "trait core::hash::Hash") , We do a blanket implementation in ‘community-edition’ to make it easier to integrate with other crates. ASSUMING F::Repr is little-endian --- # halo2_ecc::bigint::select - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ====================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/select.rs.html#1-50) · [\[−\]](javascript:void(0) "collapse all docs") [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select/index.html#functions) --------------------------------------------------------------------------------------------------- [assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select/fn.assign.html "halo2_ecc::bigint::select::assign fn") Assumptions [crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select/fn.crt.html "halo2_ecc::bigint::select::crt fn") --- # Secp256k1Chip in halo2_ecc::secp256k1 - Rust Type Definition [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[secp256k1](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/index.html) ::[Secp256k1Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/secp256k1/type.Secp256k1Chip.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ===================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/secp256k1/mod.rs.html#8) · [\[−\]](javascript:void(0) "collapse all docs") pub type Secp256k1Chip<'chip, F> = EccChip<'chip, F, FpChip<'chip, F>>; --- # ec_double in halo2_ecc::ecc - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[ec\_double](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_double.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#301-326) · [\[−\]](javascript:void(0) "collapse all docs") pub fn ec_double>(    chip: &FC,    ctx: &mut Context,    P: impl Into>) -> EcPoint Expand description [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_double.html#assumptions) ---------------------------------------------------------------------------------------------------- * `P.y != 0` * `P` is not the point at infinity (undefined behavior otherwise) --- # FpStrategy in halo2_ecc::fields - Rust Enum [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html) ::[FpStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =========================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#317-319) · [\[−\]](javascript:void(0) "collapse all docs") pub enum FpStrategy { Simple, } Variants[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#variants) ---------------------------------------------------------------------------------------------------- ### [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#variant.Simple) `Simple` Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#trait-implementations) ------------------------------------------------------------------------------------------------------------------------------ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#316) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-Clone-for-FpStrategy) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [FpStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html "enum halo2_ecc::fields::FpStrategy") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#316) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [FpStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html "enum halo2_ecc::fields::FpStrategy") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#316) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-Debug-for-FpStrategy) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [FpStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html "enum halo2_ecc::fields::FpStrategy") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#316) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#316) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-Deserialize%3C%27de%3E-for-FpStrategy) ### impl<'de> [Deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html "trait serde::de::Deserialize") <'de> for [FpStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html "enum halo2_ecc::fields::FpStrategy") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#316) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.deserialize) #### fn [deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html#tymethod.deserialize) <\_\_D>(\_\_deserializer: \_\_D) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     \_\_D: [Deserializer](https://docs.rs/serde/1.0.163/serde/de/trait.Deserializer.html "trait serde::de::Deserializer") <'de>, Deserialize this value from the given Serde deserializer. [Read more](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html#tymethod.deserialize) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#316) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-Serialize-for-FpStrategy) ### impl [Serialize](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html "trait serde::ser::Serialize") for [FpStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html "enum halo2_ecc::fields::FpStrategy") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#316) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.serialize) #### fn [serialize](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html#tymethod.serialize) <\_\_S>(&self, \_\_serializer: \_\_S) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <\_\_S::[Ok](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html#associatedtype.Ok "type serde::ser::Serializer::Ok") , \_\_S::[Error](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html#associatedtype.Error "type serde::ser::Serializer::Error") \>where     \_\_S: [Serializer](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html "trait serde::ser::Serializer") , Serialize this value into the given Serde serializer. [Read more](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html#tymethod.serialize) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#316) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-Copy-for-FpStrategy) ### impl [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") for [FpStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html "enum halo2_ecc::fields::FpStrategy") Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#synthetic-implementations) --------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-RefUnwindSafe-for-FpStrategy) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [FpStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html "enum halo2_ecc::fields::FpStrategy") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-Send-for-FpStrategy) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [FpStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html "enum halo2_ecc::fields::FpStrategy") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-Sync-for-FpStrategy) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [FpStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html "enum halo2_ecc::fields::FpStrategy") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-Unpin-for-FpStrategy) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [FpStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html "enum halo2_ecc::fields::FpStrategy") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-UnwindSafe-for-FpStrategy) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [FpStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html "enum halo2_ecc::fields::FpStrategy") Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#blanket-implementations) ---------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-Any-for-FpStrategy) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-Borrow%3CT%3E-for-FpStrategy) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-BorrowMut%3CT%3E-for-FpStrategy) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-Conv-for-FpStrategy) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-FmtForward-for-FpStrategy) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-From%3CT%3E-for-FpStrategy) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-Instrument-for-FpStrategy) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-Into%3CU%3E-for-FpStrategy) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-Pipe-for-FpStrategy) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-Pointable-for-FpStrategy) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-Same%3CT%3E-for-FpStrategy) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-FpStrategy) ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for FCwhere     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Pt: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") ,     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#454-462) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.select) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     b: [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") ,     sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#464-473) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.select_by_indicator) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced")\ \]>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-Tap-for-FpStrategy) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-ToOwned-for-FpStrategy) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-TryConv-for-FpStrategy) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-TryFrom%3CU%3E-for-FpStrategy) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-TryInto%3CU%3E-for-FpStrategy) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-VZip%3CV%3E-for-FpStrategy) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-WithSubscriber-for-FpStrategy) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) [source](https://docs.rs/serde/1.0.163/src/serde/de/mod.rs.html#604) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/enum.FpStrategy.html#impl-DeserializeOwned-for-FpStrategy) ### impl [DeserializeOwned](https://docs.rs/serde/1.0.163/serde/de/trait.DeserializeOwned.html "trait serde::de::DeserializeOwned") for Twhere     T: for<'de> [Deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html "trait serde::de::Deserialize") <'de>, --- # PrimeFieldChip in halo2_ecc::fields - Rust Trait [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html) ::[PrimeFieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ===================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#299-306) · [\[−\]](javascript:void(0) "collapse all docs") pub trait PrimeFieldChip: FieldChipwhere    Self::FieldType: PrimeField,{ fn num_limbs(&self) -> usize; fn limb_mask(&self) -> &BigUint; fn limb_bases(&self) -> &[F]ⓘNotable traits for &mut [u8]impl Write for &mut [u8]impl Read for &[u8]; } Required Methods[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html#required-methods) ------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#303) #### fn [num\_limbs](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html#tymethod.num_limbs) (&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#304) #### fn [limb\_mask](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html#tymethod.limb_mask) (&self) -> &[BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#305) #### fn [limb\_bases](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html#tymethod.limb_bases) (&self) -> &[\[F\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) ⓘNotable traits for &mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]`impl [Write](https://doc.rust-lang.org/nightly/std/io/trait.Write.html "trait std::io::Write") for &mut [[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]impl [Read](https://doc.rust-lang.org/nightly/std/io/trait.Read.html "trait std::io::Read") for &[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]` Implementors[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html#implementors) ----------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#136-146) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html#impl-PrimeFieldChip%3CF%3E-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl<'range, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , Fp: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") \> [PrimeFieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html "trait halo2_ecc::fields::PrimeFieldChip") for [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip") <'range, F, Fp> --- # PrimeField in halo2_ecc::fields - Rust Trait Alias [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html) ::[PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#19) · [\[−\]](javascript:void(0) "collapse all docs") trait PrimeField = BigPrimeField; --- # halo2_ecc::bigint::select_by_indicator - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select_by_indicator/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/select_by_indicator.rs.html#1-69) · [\[−\]](javascript:void(0) "collapse all docs") [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select_by_indicator/index.html#functions) ---------------------------------------------------------------------------------------------------------------- [assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select_by_indicator/fn.assign.html "halo2_ecc::bigint::select_by_indicator::assign fn") only use case is when coeffs has only a single 1, rest are 0 [crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select_by_indicator/fn.crt.html "halo2_ecc::bigint::select_by_indicator::crt fn") only use case is when coeffs has only a single 1, rest are 0 --- # ec_double_and_add_unequal in halo2_ecc::ecc - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[ec\_double\_and\_add\_unequal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_double_and_add_unequal.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ====================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#340-399) · [\[−\]](javascript:void(0) "collapse all docs") pub fn ec_double_and_add_unequal>(    chip: &FC,    ctx: &mut Context,    P: impl Into>,    Q: impl Into>,    is_strict: bool) -> EcPoint Expand description Implements: computing 2P + Q = P + Q + P for P = (x0, y0), Q = (x1, y1) [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_double_and_add_unequal.html#assumptions) -------------------------------------------------------------------------------------------------------------------- * Neither `P` nor `Q` is the point at infinity (undefined behavior otherwise) --- # assign in halo2_ecc::bigint::add_no_carry - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[add\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/add_no_carry/index.html) ::[assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/add_no_carry/fn.assign.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/add_no_carry.rs.html#8-22) · [\[−\]](javascript:void(0) "collapse all docs") pub fn assign(    gate: &impl GateInstructions,    ctx: &mut Context,    a: OverflowInteger,    b: OverflowInteger) -> OverflowInteger Expand description [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/add_no_carry/fn.assign.html#assumptions) ----------------------------------------------------------------------------------------------------------------- * `a, b` have same number of limbs --- # BigPrimeField in halo2_base::utils - Rust Trait Alias [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =============================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#38) · [\[−\]](javascript:void(0) "collapse all docs") trait BigPrimeField = ScalarField; --- # halo2_ecc::bigint::sub - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[sub](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/sub.rs.html#1-79) · [\[−\]](javascript:void(0) "collapse all docs") [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub/index.html#functions) ------------------------------------------------------------------------------------------------ [assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub/fn.assign.html "halo2_ecc::bigint::sub::assign fn") Assumptions [crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub/fn.crt.html "halo2_ecc::bigint::sub::crt fn") Assumptions --- # Selectable in halo2_ecc::fields - Rust Trait [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html) ::[Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#287-296) · [\[−\]](javascript:void(0) "collapse all docs") pub trait Selectable { fn select(        &self,        ctx: &mut Context,        a: Pt,        b: Pt,        sel: AssignedValue    ) -> Pt; fn select_by_indicator(        &self,        ctx: &mut Context,        a: &impl AsRef<[Pt]>,        coeffs: &[AssignedValue]    ) -> Pt; } Required Methods[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#required-methods) --------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#288) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , a: Pt, b: Pt, sel: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> Pt [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#290-295) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#tymethod.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: &impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <[\[Pt\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) \>,     coeffs: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> Pt Implementors[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#implementors) ------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#405-424) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#impl-Selectable%3CF%2C%20CRTInteger%3CF%3E%3E-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl<'range, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , Fp: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") \> [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip") <'range, F, Fp> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#426-448) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#impl-Selectable%3CF%2C%20ProperCrtUint%3CF%3E%3E-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl<'range, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , Fp: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") \> [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip") <'range, F, Fp> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#450-474) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html#impl-Selectable%3CF%2C%20Reduced%3CPt%2C%20Fp%3E%3E-for-FC) ### impl [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") > for FCwhere     FC: [Selectable](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.Selectable.html "trait halo2_ecc::fields::Selectable") , --- # ec_select in halo2_ecc::ecc - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[ec\_select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_select.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#401-414) · [\[−\]](javascript:void(0) "collapse all docs") pub fn ec_select(    chip: &FC,    ctx: &mut Context,    P: EcPoint,    Q: EcPoint,    sel: AssignedValue) -> EcPointwhere    FC: FieldChip + Selectable, --- # crt in halo2_ecc::bigint::add_no_carry - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[add\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/add_no_carry/index.html) ::[crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/add_no_carry/fn.crt.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/add_no_carry.rs.html#27-37) · [\[−\]](javascript:void(0) "collapse all docs") pub fn crt(    gate: &impl GateInstructions,    ctx: &mut Context,    a: CRTInteger,    b: CRTInteger) -> CRTInteger Expand description [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/add_no_carry/fn.crt.html#assumptions) -------------------------------------------------------------------------------------------------------------- * `a, b` have same number of limbs --- # FieldChip in halo2_ecc::fields - Rust Trait [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html) ::[FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =========================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#25-285) · [\[−\]](javascript:void(0) "collapse all docs") pub trait FieldChip: Clone + Send + Sync { type UnsafeFieldPoint: Clone + Debug + Send + Sync + From + for<'a> From<&'a Self::UnsafeFieldPoint> + for<'a> From<&'a Self::FieldPoint>; type FieldPoint: Clone + Debug + Send + Sync + From + for<'a> From<&'a Self::FieldPoint>; type ReducedFieldPoint: Clone + Debug + Send + Sync; type FieldType: Field; type RangeChip: RangeInstructions; const PRIME_FIELD_NUM_BITS: u32; Show 30 methods fn native_modulus(&self) -> &BigUint; fn range(&self) -> &Self::RangeChip; fn limb_bits(&self) -> usize; fn get_assigned_value(&self, x: &Self::UnsafeFieldPoint) -> Self::FieldType; fn load_private(        &self,        ctx: &mut Context,        fe: Self::FieldType    ) -> Self::FieldPoint; fn load_constant(        &self,        ctx: &mut Context,        fe: Self::FieldType    ) -> Self::FieldPoint; fn add_no_carry(        &self,        ctx: &mut Context,        a: impl Into,        b: impl Into    ) -> Self::UnsafeFieldPoint; fn add_constant_no_carry(        &self,        ctx: &mut Context,        a: impl Into,        c: Self::FieldType    ) -> Self::UnsafeFieldPoint; fn sub_no_carry(        &self,        ctx: &mut Context,        a: impl Into,        b: impl Into    ) -> Self::UnsafeFieldPoint; fn negate(        &self,        ctx: &mut Context,        a: Self::FieldPoint    ) -> Self::FieldPoint; fn scalar_mul_no_carry(        &self,        ctx: &mut Context,        a: impl Into,        c: i64    ) -> Self::UnsafeFieldPoint; fn scalar_mul_and_add_no_carry(        &self,        ctx: &mut Context,        a: impl Into,        b: impl Into,        c: i64    ) -> Self::UnsafeFieldPoint; fn mul_no_carry(        &self,        ctx: &mut Context,        a: impl Into,        b: impl Into    ) -> Self::UnsafeFieldPoint; fn check_carry_mod_to_zero(        &self,        ctx: &mut Context,        a: Self::UnsafeFieldPoint    ); fn carry_mod(        &self,        ctx: &mut Context,        a: Self::UnsafeFieldPoint    ) -> Self::FieldPoint; fn range_check(        &self,        ctx: &mut Context,        a: impl Into,        max_bits: usize    ); fn enforce_less_than(        &self,        ctx: &mut Context,        a: Self::FieldPoint    ) -> Self::ReducedFieldPoint; fn is_soft_zero(        &self,        ctx: &mut Context,        a: impl Into    ) -> AssignedValue; fn is_soft_nonzero(        &self,        ctx: &mut Context,        a: impl Into    ) -> AssignedValue; fn is_zero(        &self,        ctx: &mut Context,        a: impl Into    ) -> AssignedValue; fn is_equal_unenforced(        &self,        ctx: &mut Context,        a: Self::ReducedFieldPoint,        b: Self::ReducedFieldPoint    ) -> AssignedValue; fn assert_equal(        &self,        ctx: &mut Context,        a: impl Into,        b: impl Into    ); fn gate(&self) -> &>::Gate { ... } fn load_private_reduced(        &self,        ctx: &mut Context,        fe: Self::FieldType    ) -> Self::ReducedFieldPoint { ... } fn is_equal(        &self,        ctx: &mut Context,        a: impl Into,        b: impl Into    ) -> AssignedValue { ... } fn mul(        &self,        ctx: &mut Context,        a: impl Into,        b: impl Into    ) -> Self::FieldPoint { ... } fn divide(        &self,        ctx: &mut Context,        a: impl Into,        b: impl Into    ) -> Self::FieldPoint { ... } fn divide_unsafe(        &self,        ctx: &mut Context,        a: impl Into,        b: impl Into    ) -> Self::FieldPoint { ... } fn neg_divide(        &self,        ctx: &mut Context,        a: impl Into,        b: impl Into    ) -> Self::FieldPoint { ... } fn neg_divide_unsafe(        &self,        ctx: &mut Context,        a: impl Into,        b: impl Into    ) -> Self::FieldPoint { ... } } Expand description Trait for common functionality for finite field chips. Primarily intended to emulate a “non-native” finite field using “native” values in a prime field `F`. Most functions are designed for the case when the non-native field is larger than the native field, but the trait can still be implemented and used in other cases. Required Associated Types[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#required-associated-types) -------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#30-36) #### type [UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint) : [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") + [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") + [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") + [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") + [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") + for<'a> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&'a Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") \> + for<'a> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&'a Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") \> A representation of a field element that is used for intermediate computations. The representation can have “overflows” (e.g., overflow limbs or negative limbs). [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#39-44) #### type [FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint) : [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") + [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") + [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") + [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") + [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") + for<'a> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&'a Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") \> The “proper” representation of a field element. Allowed to be a non-unique representation of a field element (e.g., can be greater than modulus) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#47) #### type [ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint) : [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") + [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") + [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") + [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") A proper representation of field elements that guarantees a unique representation of each field element. Typically this means Uints that are less than the modulus. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#50) #### type [FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType) : Field A type implementing `Field` trait to help with witness generation (for example with inverse) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#51) #### type [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.RangeChip) : [RangeInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html "trait halo2_base::gates::range::RangeInstructions") Required Associated Constants[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#required-associated-consts) ------------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#26) #### const [PRIME\_FIELD\_NUM\_BITS](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedconstant.PRIME_FIELD_NUM_BITS) : [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) Required Methods[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#required-methods) -------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#53) #### fn [native\_modulus](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.native_modulus) (&self) -> &[BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#57) #### fn [range](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.range) (&self) -> &Self::[RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.RangeChip "type halo2_ecc::fields::FieldChip::RangeChip") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#58) #### fn [limb\_bits](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.limb_bits) (&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#60) #### fn [get\_assigned\_value](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.get_assigned_value) (&self, x: &Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") ) -> Self::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#63) #### fn [load\_private](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.load_private) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     fe: Self::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Assigns `fe` as private witness. Note that the witness may **not** be constrained to be a unique representation of the field element `fe`. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#76) #### fn [load\_constant](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.load_constant) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     fe: Self::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Assigns `fe` as constant. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#78-83) #### fn [add\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.add_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#86-91) #### fn [add\_constant\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.add_constant_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     c: Self::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") ) -> Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") output: `a + c` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#93-98) #### fn [sub\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.sub_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#100) #### fn [negate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.negate) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , a: Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#103-108) #### fn [scalar\_mul\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.scalar_mul_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     c: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) ) -> Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") a \* c [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#111-117) #### fn [scalar\_mul\_and\_add\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.scalar_mul_and_add_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     c: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) ) -> Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") a \* c + b [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#119-124) #### fn [mul\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.mul_no_carry) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#126) #### fn [check\_carry\_mod\_to\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.check_carry_mod_to_zero) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , a: Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") ) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#128) #### fn [carry\_mod](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.carry_mod) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: Self::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#130-135) #### fn [range\_check](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.range_check) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     max\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#138-142) #### fn [enforce\_less\_than](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.enforce_less_than) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") ) -> Self::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") Constrains that `a` is a reduced representation and returns the wrapped `a`. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#146-150) #### fn [is\_soft\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.is_soft_zero) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#155-159) #### fn [is\_soft\_nonzero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.is_soft_nonzero) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#161) #### fn [is\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.is_zero) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#163-168) #### fn [is\_equal\_unenforced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.is_equal_unenforced) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: Self::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") ,     b: Self::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#170-175) #### fn [assert\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#tymethod.assert_equal) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) Provided Methods[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#provided-methods) -------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#54-56) #### fn [gate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.gate) (&self) -> &>::[Gate](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#associatedtype.Gate "type halo2_base::gates::range::RangeInstructions::Gate") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#66-73) #### fn [load\_private\_reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.load_private_reduced) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     fe: Self::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") ) -> Self::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") Assigns `fe` as private witness and contrains the witness to be in reduced form. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#182-192) #### fn [is\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.is_equal) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#195-203) #### fn [mul](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.mul) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") If using `UnsafeFieldPoint`, make sure multiplication does not cause overflow. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#206-217) #### fn [divide](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.divide) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Constrains that `b` is nonzero as a field element and then returns `a / b`. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#224-245) #### fn [divide\_unsafe](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.divide_unsafe) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Returns `a / b` without constraining `b` to be nonzero. Warning: undefined behavior when `b` is zero. `a, b` must be such that `quot * b - a` without carry does not overflow, where `quot` is the output. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#248-259) #### fn [neg\_divide](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.neg_divide) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Constrains that `b` is nonzero as a field element and then returns `-a / b`. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/mod.rs.html#263-284) #### fn [neg\_divide\_unsafe](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#method.neg_divide_unsafe) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ) -> Self::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") Implementors[](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#implementors) ------------------------------------------------------------------------------------------------------------ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#67-117) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#impl-FieldChip%3CF%3E-for-Fp2Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp2%3E) ### impl<'a, F, FpChip, Fp2> [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") for [Fp2Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp2/struct.Fp2Chip.html "struct halo2_ecc::fields::fp2::Fp2Chip") <'a, F, FpChip, Fp2>where     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     FpChip::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") : [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     FpChip: [PrimeFieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html "trait halo2_ecc::fields::PrimeFieldChip") ,     Fp2: Field + [FieldExtConstructor](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html "trait halo2_ecc::fields::FieldExtConstructor") ,     [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") : [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") >,     [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") : [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") >, [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp2.rs.html#76) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedconstant.PRIME_FIELD_NUM_BITS-1) #### const [PRIME\_FIELD\_NUM\_BITS](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedconstant.PRIME_FIELD_NUM_BITS) : [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) = ::NUM\_BITS [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint-1) #### type [UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint) = [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") <>::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") \> [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint-1) #### type [FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint) = [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") <>::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") \> [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint-1) #### type [ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint) = [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") <>::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") \> [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType-1) #### type [FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType) = Fp2 [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.RangeChip-1) #### type [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.RangeChip) = >::[RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.RangeChip "type halo2_ecc::fields::FieldChip::RangeChip") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#113-216) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#impl-FieldChip%3CF%3E-for-Fp12Chip%3C%27a%2C%20F%2C%20FpChip%2C%20Fp12%2C%20XI_0%3E) ### impl<'a, F, FpChip, Fp12, const XI\_0: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) \> [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") for [Fp12Chip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/struct.Fp12Chip.html "struct halo2_ecc::fields::fp12::Fp12Chip") <'a, F, FpChip, Fp12, XI\_0>where     F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     FpChip: [PrimeFieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.PrimeFieldChip.html "trait halo2_ecc::fields::PrimeFieldChip") ,     FpChip::[FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType "type halo2_ecc::fields::FieldChip::FieldType") : [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") ,     Fp12: Field + [FieldExtConstructor](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldExtConstructor.html "trait halo2_ecc::fields::FieldExtConstructor") ,     [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") : [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") >,     [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") : [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") >, [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#122) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedconstant.PRIME_FIELD_NUM_BITS-2) #### const [PRIME\_FIELD\_NUM\_BITS](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedconstant.PRIME_FIELD_NUM_BITS) : [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) = ::NUM\_BITS [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint-2) #### type [UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint) = [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") <>::[UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint "type halo2_ecc::fields::FieldChip::UnsafeFieldPoint") \> [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint-2) #### type [FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint) = [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") <>::[FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint "type halo2_ecc::fields::FieldChip::FieldPoint") \> [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint-2) #### type [ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint) = [FieldVector](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/vector/struct.FieldVector.html "struct halo2_ecc::fields::vector::FieldVector") <>::[ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint "type halo2_ecc::fields::FieldChip::ReducedFieldPoint") \> [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType-2) #### type [FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType) = Fp12 [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.RangeChip-2) #### type [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.RangeChip) = >::[RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.RangeChip "type halo2_ecc::fields::FieldChip::RangeChip") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#148-403) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#impl-FieldChip%3CF%3E-for-FpChip%3C%27range%2C%20F%2C%20Fp%3E) ### impl<'range, F: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") , Fp: [PrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/traitalias.PrimeField.html "traitalias halo2_ecc::fields::PrimeField") \> [FieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html "trait halo2_ecc::fields::FieldChip") for [FpChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.FpChip.html "struct halo2_ecc::fields::fp::FpChip") <'range, F, Fp> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#149) [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedconstant.PRIME_FIELD_NUM_BITS-3) #### const [PRIME\_FIELD\_NUM\_BITS](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedconstant.PRIME_FIELD_NUM_BITS) : [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) = Fp::NUM\_BITS [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint-3) #### type [UnsafeFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.UnsafeFieldPoint) = [CRTInteger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.CRTInteger.html "struct halo2_ecc::bigint::CRTInteger") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint-3) #### type [FieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldPoint) = [ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint-3) #### type [ReducedFieldPoint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.ReducedFieldPoint) = [Reduced](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/struct.Reduced.html "struct halo2_ecc::fields::fp::Reduced") <[ProperCrtUint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperCrtUint.html "struct halo2_ecc::bigint::ProperCrtUint") , Fp> [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType-3) #### type [FieldType](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.FieldType) = Fp [](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.RangeChip-3) #### type [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/trait.FieldChip.html#associatedtype.RangeChip) = [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "struct halo2_base::gates::range::RangeChip") --- # ec_select_by_indicator in halo2_ecc::ecc - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[ec\_select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_select_by_indicator.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =============================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#418-438) · [\[−\]](javascript:void(0) "collapse all docs") pub fn ec_select_by_indicator(    chip: &FC,    ctx: &mut Context,    points: &[Pt],    coeffs: &[AssignedValue]) -> EcPointwhere    FC: FieldChip + Selectable,    Pt: Into> + Clone, --- # halo2_ecc::bigint::sub_no_carry - Rust Module [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[sub\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub_no_carry/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ==================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/sub_no_carry.rs.html#1-34) · [\[−\]](javascript:void(0) "collapse all docs") [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub_no_carry/index.html#functions) --------------------------------------------------------------------------------------------------------- [assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub_no_carry/fn.assign.html "halo2_ecc::bigint::sub_no_carry::assign fn") Assumptions [crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub_no_carry/fn.crt.html "halo2_ecc::bigint::sub_no_carry::crt fn") --- # assign in halo2_ecc::bigint::big_is_equal - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[big\_is\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_equal/index.html) ::[assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_equal/fn.assign.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/big_is_equal.rs.html#11-29) · [\[−\]](javascript:void(0) "collapse all docs") pub fn assign(    gate: &impl GateInstructions,    ctx: &mut Context,    a: impl Into>,    b: impl Into>) -> AssignedValue Expand description Given [`ProperUint`](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/struct.ProperUint.html "ProperUint") s `a` and `b` with the same number of limbs, returns whether `a == b`. [Assumptions:](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_equal/fn.assign.html#assumptions) ------------------------------------------------------------------------------------------------------------------ * `a, b` have the same number of limbs. * The number of limbs is nonzero. --- # ec_select_from_bits in halo2_ecc::ecc - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[ec\_select\_from\_bits](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_select_from_bits.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#441-455) · [\[−\]](javascript:void(0) "collapse all docs") pub fn ec_select_from_bits(    chip: &FC,    ctx: &mut Context,    points: &[Pt],    sel: &[AssignedValue]) -> EcPointwhere    FC: FieldChip + Selectable,    Pt: Into> + Clone, --- # address in zkevm_keccak - Rust Macro [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[address](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/macro.address.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#128-133) · [\[−\]](javascript:void(0) "collapse all docs") macro_rules! address { ($addr_hex:expr) => { ... }; } Expand description Create an [`Address`](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Address.html "Address") from a hex string. Panics on invalid input. --- # impl_expr in zkevm_keccak - Rust Macro [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[impl\_expr](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/macro.impl_expr.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/expression.rs.html#130-147) · [\[−\]](javascript:void(0) "collapse all docs") macro_rules! impl_expr { ($type:ty) => { ... }; ($type:ty, $method:path) => { ... }; } Expand description Implementation trait `Expr` for type able to be casted to u64 --- # ec_sub_strict in halo2_ecc::ecc - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[ec\_sub\_strict](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_sub_strict.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#252-284) · [\[−\]](javascript:void(0) "collapse all docs") pub fn ec_sub_strict>(    chip: &FC,    ctx: &mut Context,    P: impl Into>,    Q: impl Into>) -> EcPointwhere    FC: Selectable, Expand description Constrains `P != -Q` but allows `P == Q`, in which case output is (0,0). For Weierstrass curves only. Assumptions [Neither P or Q is the point at infinity](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_sub_strict.html#neither-p-or-q-is-the-point-at-infinity) ---------------------------------------------------------------------------------------------------------------------------------------------------------------- --- # KeccakCircuitConfig in zkevm_keccak::keccak_packed_multi - Rust Struct [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[keccak\_packed\_multi](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/index.html) ::[KeccakCircuitConfig](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ====================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#819-840) · [\[−\]](javascript:void(0) "collapse all docs") pub struct KeccakCircuitConfig { pub keccak_table: KeccakTable, /* private fields */ } Expand description KeccakConfig Fields[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#fields) --------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#structfield.keccak_table) `keccak_table: [KeccakTable](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html "struct zkevm_keccak::keccak_packed_multi::KeccakTable") ` Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#implementations) --------------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#842-1540) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-KeccakCircuitConfig%3CF%3E) ### impl [KeccakCircuitConfig](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html "struct zkevm_keccak::keccak_packed_multi::KeccakCircuitConfig") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#843-845) #### pub fn [challenge](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.challenge) (&self) -> Challenge [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#847-1539) #### pub fn [new](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.new) (meta: &mut ConstraintSystem, challenge: Challenge) -> Self Return a new KeccakCircuitConfig [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#1542-1592) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-KeccakCircuitConfig%3CF%3E-1) ### impl [KeccakCircuitConfig](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html "struct zkevm_keccak::keccak_packed_multi::KeccakCircuitConfig") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#1543-1547) #### pub fn [assign](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.assign) (&self, region: &mut Region<'\_, F>, witness: &\[[KeccakRow](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html "struct zkevm_keccak::keccak_packed_multi::KeccakRow")\ \]) [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#1549-1577) #### pub fn [set\_row](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.set_row) (     &self,     region: &mut Region<'\_, F>,     offset: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ,     row: &[KeccakRow](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html "struct zkevm_keccak::keccak_packed_multi::KeccakRow") ) [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#1579-1591) #### pub fn [load\_aux\_tables](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.load_aux_tables) (     &self,     layouter: &mut impl Layouter ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[()](https://doc.rust-lang.org/nightly/std/primitive.unit.html) , Error> Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#trait-implementations) --------------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#818) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-Clone-for-KeccakCircuitConfig%3CF%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [KeccakCircuitConfig](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html "struct zkevm_keccak::keccak_packed_multi::KeccakCircuitConfig") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#818) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [KeccakCircuitConfig](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html "struct zkevm_keccak::keccak_packed_multi::KeccakCircuitConfig") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#818) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-Debug-for-KeccakCircuitConfig%3CF%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [KeccakCircuitConfig](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html "struct zkevm_keccak::keccak_packed_multi::KeccakCircuitConfig") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#818) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#synthetic-implementations) ------------------------------------------------------------------------------------------------------------------------------------------------------------------ [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-RefUnwindSafe-for-KeccakCircuitConfig%3CF%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [KeccakCircuitConfig](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html "struct zkevm_keccak::keccak_packed_multi::KeccakCircuitConfig") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-Send-for-KeccakCircuitConfig%3CF%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [KeccakCircuitConfig](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html "struct zkevm_keccak::keccak_packed_multi::KeccakCircuitConfig") where     F: [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-Sync-for-KeccakCircuitConfig%3CF%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [KeccakCircuitConfig](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html "struct zkevm_keccak::keccak_packed_multi::KeccakCircuitConfig") where     F: [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-Unpin-for-KeccakCircuitConfig%3CF%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [KeccakCircuitConfig](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html "struct zkevm_keccak::keccak_packed_multi::KeccakCircuitConfig") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-UnwindSafe-for-KeccakCircuitConfig%3CF%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [KeccakCircuitConfig](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html "struct zkevm_keccak::keccak_packed_multi::KeccakCircuitConfig") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#blanket-implementations) ------------------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-Any-for-KeccakCircuitConfig%3CF%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-Borrow%3CT%3E-for-KeccakCircuitConfig%3CF%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-BorrowMut%3CT%3E-for-KeccakCircuitConfig%3CF%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-Conv-for-KeccakCircuitConfig%3CF%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-FmtForward-for-KeccakCircuitConfig%3CF%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-From%3CT%3E-for-KeccakCircuitConfig%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-Instrument-for-KeccakCircuitConfig%3CF%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-Into%3CU%3E-for-KeccakCircuitConfig%3CF%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-Pipe-for-KeccakCircuitConfig%3CF%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-Pointable-for-KeccakCircuitConfig%3CF%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-Same%3CT%3E-for-KeccakCircuitConfig%3CF%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-Tap-for-KeccakCircuitConfig%3CF%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-ToOwned-for-KeccakCircuitConfig%3CF%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-TryConv-for-KeccakCircuitConfig%3CF%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-TryFrom%3CU%3E-for-KeccakCircuitConfig%3CF%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-TryInto%3CU%3E-for-KeccakCircuitConfig%3CF%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-VZip%3CV%3E-for-KeccakCircuitConfig%3CF%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#impl-WithSubscriber-for-KeccakCircuitConfig%3CF%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # get_naf in halo2_ecc::ecc - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[get\_naf](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.get_naf.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =============================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#763-805) · [\[−\]](javascript:void(0) "collapse all docs") pub fn get_naf(exp: Vec) -> Vec --- # word in zkevm_keccak - Rust Macro [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[word](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/macro.word.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#137-141) · [\[−\]](javascript:void(0) "collapse all docs") macro_rules! word { ($word_hex:expr) => { ... }; } Expand description Create a [`Word`](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Word.html "Word") from a hex string. Panics on invalid input. --- # assign in halo2_ecc::bigint::big_is_zero - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[big\_is\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/index.html) ::[assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/fn.assign.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ===================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/big_is_zero.rs.html#27-41) · [\[−\]](javascript:void(0) "collapse all docs") pub fn assign(    gate: &impl GateInstructions,    ctx: &mut Context,    a: ProperUint) -> AssignedValue Expand description Given ProperUint `a`, returns 1 iff every limb of `a` is zero. Returns 0 otherwise. It is almost always more efficient to use [`positive`](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/fn.positive.html "positive") instead. [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/fn.assign.html#assumptions) ---------------------------------------------------------------------------------------------------------------- * `a` has nonzero number of limbs --- # ec_sub_unequal in halo2_ecc::ecc - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[ec\_sub\_unequal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_sub_unequal.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#218-245) · [\[−\]](javascript:void(0) "collapse all docs") pub fn ec_sub_unequal>(    chip: &FC,    ctx: &mut Context,    P: impl Into>,    Q: impl Into>,    is_strict: bool) -> EcPoint Expand description If `is_strict = true`, then this function constrains that `P.x != Q.x`. If you are calling this with `is_strict = false`, you must ensure that `P.x != Q.x` by some external logic (such as a mathematical theorem). [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.ec_sub_unequal.html#assumptions) --------------------------------------------------------------------------------------------------------- * Neither `P` nor `Q` is the point at infinity (undefined behavior otherwise) --- # word_map in zkevm_keccak - Rust Macro [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[word\_map](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/macro.word_map.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =========================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#146-157) · [\[−\]](javascript:void(0) "collapse all docs") macro_rules! word_map { () => { ... }; ($($key_hex:expr => $value_hex:expr),*) => { ... }; } Expand description Create a [`Word`](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Word.html "Word") to [`Word`](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Word.html "Word") HashMap from pairs of hex strings. Panics on invalid input. --- # crt in halo2_ecc::bigint::big_is_zero - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[big\_is\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/index.html) ::[crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/fn.crt.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =============================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/big_is_zero.rs.html#47-53) · [\[−\]](javascript:void(0) "collapse all docs") pub fn crt(    gate: &impl GateInstructions,    ctx: &mut Context,    a: ProperCrtUint) -> AssignedValue Expand description Returns 0 or 1. Returns 1 iff the limbs of `a` are identically zero. This just calls [`assign`](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/fn.assign.html "assign") on the limbs. It is almost always more efficient to use [`positive`](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/fn.positive.html "positive") instead. --- # load_random_point in halo2_ecc::ecc - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[load\_random\_point](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.load_random_point.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ==================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#603-619) · [\[−\]](javascript:void(0) "collapse all docs") pub fn load_random_point(    chip: &FC,    ctx: &mut Context) -> EcPointwhere    F: PrimeField,    FC: FieldChip,    C: CurveAffineExt, --- # positive in halo2_ecc::bigint::big_is_zero - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[big\_is\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/index.html) ::[positive](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/fn.positive.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/big_is_zero.rs.html#8-19) · [\[−\]](javascript:void(0) "collapse all docs") pub fn positive(    gate: &impl GateInstructions,    ctx: &mut Context,    a: OverflowInteger) -> AssignedValue Expand description [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_is_zero/fn.positive.html#assumptions) ------------------------------------------------------------------------------------------------------------------ * `a` has nonzero number of limbs * The limbs of `a` are all in \[0, 2a.max\_limb\_bits)\ * a.limbs.len() \* 2a.max\_limb\_bits `is less than modulus of`F\` --- # into_strict_point in halo2_ecc::ecc - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[into\_strict\_point](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.into_strict_point.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ==================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#621-632) · [\[−\]](javascript:void(0) "collapse all docs") pub fn into_strict_point(    chip: &FC,    ctx: &mut Context,    pt: EcPoint) -> StrictEcPointwhere    F: PrimeField,    FC: FieldChip, --- # GateInstructions in halo2_base::gates::flex_gate - Rust Trait [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[flex\_gate](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/index.html) ::[GateInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =================================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#157-867) · [\[−\]](javascript:void(0) "collapse all docs") pub trait GateInstructions { Show 35 methods fn strategy(&self) -> GateStrategy; fn pow_of_two(&self) -> &[F]ⓘNotable traits for &mut [u8]impl Write for &mut [u8]impl Read for &[u8]; fn get_field_element(&self, n: u64) -> F; fn inner_product(        &self,        ctx: &mut Context,        a: impl IntoIterator,        b: impl IntoIterator>    ) -> AssignedValue    where        QA: Into>; fn inner_product_left_last(        &self,        ctx: &mut Context,        a: impl IntoIterator,        b: impl IntoIterator>    ) -> (AssignedValue, AssignedValue)    where        QA: Into>; fn inner_product_with_sums<'thread, QA>(        &self,        ctx: &'thread mut Context,        a: impl IntoIterator,        b: impl IntoIterator>    ) -> Box> + 'thread>    where        QA: Into>; fn sum_products_with_coeff_and_var(        &self,        ctx: &mut Context,        values: impl IntoIterator, QuantumCell)>,        var: QuantumCell    ) -> AssignedValue; fn select(        &self,        ctx: &mut Context,        a: impl Into>,        b: impl Into>,        sel: impl Into>    ) -> AssignedValue; fn or_and(        &self,        ctx: &mut Context,        a: impl Into>,        b: impl Into>,        c: impl Into>    ) -> AssignedValue; fn num_to_bits(        &self,        ctx: &mut Context,        a: AssignedValue,        range_bits: usize    ) -> Vec>; fn const_right_rotate_unsafe(        &self,        ctx: &mut Context,        a: AssignedValue    ) -> AssignedValue; fn const_left_rotate_unsafe(        &self,        ctx: &mut Context,        a: AssignedValue    ) -> AssignedValue; fn add(        &self,        ctx: &mut Context,        a: impl Into>,        b: impl Into>    ) -> AssignedValue { ... } fn sub(        &self,        ctx: &mut Context,        a: impl Into>,        b: impl Into>    ) -> AssignedValue { ... } fn neg(        &self,        ctx: &mut Context,        a: impl Into>    ) -> AssignedValue { ... } fn mul(        &self,        ctx: &mut Context,        a: impl Into>,        b: impl Into>    ) -> AssignedValue { ... } fn mul_add(        &self,        ctx: &mut Context,        a: impl Into>,        b: impl Into>,        c: impl Into>    ) -> AssignedValue { ... } fn mul_not(        &self,        ctx: &mut Context,        a: impl Into>,        b: impl Into>    ) -> AssignedValue { ... } fn assert_bit(&self, ctx: &mut Context, x: AssignedValue) { ... } fn div_unsafe(        &self,        ctx: &mut Context,        a: impl Into>,        b: impl Into>    ) -> AssignedValue { ... } fn assert_is_const(        &self,        ctx: &mut Context,        a: &AssignedValue,        constant: &F    ) { ... } fn sum(        &self,        ctx: &mut Context,        a: impl IntoIterator    ) -> AssignedValue    where        Q: Into>, { ... } fn partial_sums<'thread, Q>(        &self,        ctx: &'thread mut Context,        a: impl IntoIterator    ) -> Box> + 'thread>    where        Q: Into>, { ... } fn accumulated_product(        &self,        ctx: &mut Context,        a: impl IntoIterator,        b: impl IntoIterator    ) -> Vec>    where        QA: Into>,        QB: Into>, { ... } fn or(        &self,        ctx: &mut Context,        a: impl Into>,        b: impl Into>    ) -> AssignedValue { ... } fn and(        &self,        ctx: &mut Context,        a: impl Into>,        b: impl Into>    ) -> AssignedValue { ... } fn xor(        &self,        ctx: &mut Context,        a: impl Into>,        b: impl Into>    ) -> AssignedValue { ... } fn not(        &self,        ctx: &mut Context,        a: impl Into>    ) -> AssignedValue { ... } fn bits_to_indicator(        &self,        ctx: &mut Context,        bits: &[AssignedValue]    ) -> Vec> { ... } fn idx_to_indicator(        &self,        ctx: &mut Context,        idx: impl Into>,        len: usize    ) -> Vec> { ... } fn select_by_indicator(        &self,        ctx: &mut Context,        a: impl IntoIterator,        indicator: impl IntoIterator>    ) -> AssignedValue    where        Q: Into>, { ... } fn select_from_idx(        &self,        ctx: &mut Context,        cells: impl IntoIterator,        idx: impl Into>    ) -> AssignedValue    where        Q: Into>, { ... } fn is_zero(        &self,        ctx: &mut Context,        a: AssignedValue    ) -> AssignedValue { ... } fn is_equal(        &self,        ctx: &mut Context,        a: impl Into>,        b: impl Into>    ) -> AssignedValue { ... } fn lagrange_and_eval(        &self,        ctx: &mut Context,        coords: &[(AssignedValue, AssignedValue)],        x: AssignedValue    ) -> (AssignedValue, AssignedValue) { ... } } Expand description Trait that defines basic arithmetic operations for a gate. Required Methods[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#required-methods) ------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#159) #### fn [strategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.strategy) (&self) -> [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") Returns the [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "GateStrategy") for the gate. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#162) #### fn [pow\_of\_two](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.pow_of_two) (&self) -> &[\[F\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) ⓘNotable traits for &mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]`impl [Write](https://doc.rust-lang.org/nightly/std/io/trait.Write.html "trait std::io::Write") for &mut [[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]impl [Read](https://doc.rust-lang.org/nightly/std/io/trait.Read.html "trait std::io::Read") for &[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]` Returns a slice of the [ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html "ScalarField") field elements 2^i for i in 0..F::NUM\_BITS. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#165) #### fn [get\_field\_element](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.get_field_element) (&self, n: [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) ) -> F Converts a [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html "u64") into a scalar field element [ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html "ScalarField") . [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#323-330) #### fn [inner\_product](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.inner_product) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     b: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") where     QA: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >, Constrains and returns the inner product of ``. Assumes ‘a’ and ‘b’ are the same length. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: Iterator of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") values * `b`: Iterator of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") values to take inner product of `a` by [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#338-345) #### fn [inner\_product\_left\_last](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.inner_product_left_last) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     b: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") > ) -> ([AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") , [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") )where     QA: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >, Returns the inner product of `` and the last element of `a` now assigned, i.e. `(inner_product_, last_element_a)`. Assumes ‘a’ and ‘b’ are the same length. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") of the circuit * `a`: Iterator of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") s * `b`: Iterator of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") s to take inner product of `a` by [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#355-362) #### fn [inner\_product\_with\_sums](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.inner_product_with_sums) <'thread, QA>(     &self,     ctx: &'thread mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     b: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") > ) -> [Box](https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html "struct alloc::boxed::Box") > + 'thread>where     QA: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >, Calculates and constrains the inner product. Returns the assignment trace where `output[i]` has the running sum `sum_{j=0..=i} a[j] * b[j]`. Assumes ‘a’ and ‘b’ are the same length. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: Iterator of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") values * `b`: Iterator of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") values to calculate the partial sums of the inner product of `a` by. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#467-472) #### fn [sum\_products\_with\_coeff\_and\_var](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.sum_products_with_coeff_and_var) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     values: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") )>,     var: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns the sum of products of `coeff * (a * b)` defined in `values` plus a variable `var` e.g. `x = var + values[0].0 * (values[0].1 * values[0].2) + values[1].0 * (values[1].1 * values[1].2) + ... + values[n].0 * (values[n].1 * values[n].2)`. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to. * `values`: Iterator of tuples `(coeff, a, b)` where `coeff` is a field element, `a` and `b` are [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") ’s. * `var`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that represents the value of a variable added to the sum. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#565-571) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     sel: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `sel ? a : b` assuming `sel` is boolean. Defines a vertical gate of form `| 1 - sel | sel | 1 | a | 1 - sel | sel | 1 | b | out |`, where out = sel \* a + (1 - sel) \* b. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to. * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that contains a boolean value. * `b`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that contains a boolean value. * `sel`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that contains a boolean value. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#580-586) #### fn [or\_and](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.or_and) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     c: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constains and returns `a || (b && c)`, assuming `a`, `b` and `c` are boolean. Defines a vertical gate of form `| 1 - b c | b | c | 1 | a - 1 | 1 - b c | out | a - 1 | 1 | 1 | a |`, where out = a + b \* c - a \* b \* c. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to. * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that contains a boolean value. * `b`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that contains a boolean value. * `c`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that contains a boolean value. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#787-792) #### fn [num\_to\_bits](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.num_to_bits) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ,     range\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") > Constrains and returns little-endian bit vector representation of `a`. Assumes `range_bits <= number of bits in a`. * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") of the value to convert * `range_bits`: range of bits needed to represent `a` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#851-855) #### fn [const\_right\_rotate\_unsafe](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.const_right_rotate_unsafe) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Bitwise right rotate a by BIT bits. BIT and NUM\_BITS must be determined at compile time. Assumes ‘a’ is a NUM\_BITS bit integer and NUM\_BITS <= 128. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: a [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "AssignedValue") value. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#862-866) #### fn [const\_left\_rotate\_unsafe](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.const_left_rotate_unsafe) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Bitwise left rotate a by BIT bits. BIT and NUM\_BITS must be determined at compile time. Assumes ‘a’ is a NUM\_BITS bit integer and NUM\_BITS <= 128. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: a [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "AssignedValue") value. Provided Methods[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#provided-methods) ------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#173-183) #### fn [add](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.add) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `a + b * 1 = out`. Defines a vertical gate of form | a | b | 1 | a + b | where (a + b) = out. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") value * `b`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") value to add to ’a\` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#191-203) #### fn [sub](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.sub) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `a + b * (-1) = out`. Defines a vertical gate of form | a - b | b | 1 | a |, where (a - b) = out. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") value * `b`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") value to subtract from ‘a’ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#210-215) #### fn [neg](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.neg) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `a * (-1) = out`. Defines a vertical gate of form | a | -a | 1 | 0 |, where (-a) = out. * `ctx`: the [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") value to negate [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#223-233) #### fn [mul](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.mul) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `0 + a * b = out`. Defines a vertical gate of form | 0 | a | b | a \* b |, where (a \* b) = out. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") value * `b`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") value to multiply ‘a’ by [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#242-254) #### fn [mul\_add](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.mul_add) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     c: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `a * b + c = out`. Defines a vertical gate of form | c | a | b | a \* b + c |, where (a \* b + c) = out. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") value * `b`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") value to multiply ‘a’ by * `c`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") value to add to ‘a \* b’ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#262-273) #### fn [mul\_not](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.mul_not) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `(1 - a) * b = b - a * b`. Defines a vertical gate of form | (1 - a) \* b | a | b | b |, where (1 - a) \* b = out. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") value * `b`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") value to multiply ‘a’ by [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#280-282) #### fn [assert\_bit](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.assert_bit) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , x: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) Constrains that x is boolean (e.g. 0 or 1). Defines a vertical gate of form | 0 | x | x | x |. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `x`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") value to constrain [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#292-305) #### fn [div\_unsafe](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.div_unsafe) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns a / b = 0. Defines a vertical gate of form | 0 | b^1 \* a | b | a |, where b^1 \* a = out. Assumes `b != 0`. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") value * `b`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") value to divide ‘a’ by [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#311-315) #### fn [assert\_is\_const](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.assert_is_const) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , a: &[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") , constant: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) F) Constrains that `a` is equal to `constant` value. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") value * `constant`: constant value to constrain `a` to be equal to [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#367-390) #### fn [sum](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.sum) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") where     Q: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >, Constrains and returns the sum of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") ’s in iterator `a`. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: Iterator of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") values to sum [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#397-425) #### fn [partial\_sums](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.partial_sums) <'thread, Q>(     &self,     ctx: &'thread mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ) -> [Box](https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html "struct alloc::boxed::Box") > + 'thread>where     Q: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >, Calculates and constrains the sum of the elements of `a`. Returns the assignment trace where `output[i]` has the running sum `sum_{j=0..=i} a[j]`. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: Iterator of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") values to sum [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#438-460) #### fn [accumulated\_product](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.accumulated_product) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     b: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") >where     QA: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     QB: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >, Calculates and constrains the accumulated product of ‘a’ and ‘b’ i.e. `x_i = b_1 * (a_1...a_{i - 1}) + b_2 * (a_2...a_{i - 1}) + ... + b_i` Returns the assignment trace where `output[i]` is the running accumulated product x\_i. Assumes ‘a’ and ‘b’ are the same length. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: Iterator of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") values * `b`: Iterator of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") values to take the accumulated product of `a` by [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#480-502) #### fn [or](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.or) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `a || b`, assuming `a` and `b` are boolean. Defines a vertical gate of form `| 1 - b | 1 | b | 1 | b | a | 1 - b | out |`, where `out = a + b - a * b`. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to. * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that contains a boolean value. * `b`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that contains a boolean value. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#510-517) #### fn [and](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.and) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `a & b`, assumeing `a` and `b` are boolean. Defines a vertical gate of form | 0 | a | b | out |, where out = a \* b. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to. * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that contains a boolean value. * `b`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that contains a boolean value. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#525-547) #### fn [xor](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.xor) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `a ^ b`, assuming `a` and `b` are boolean. Defines a vertical gate of form `| 1 - 2 * b | 2 | b | 1 | b | a | 1 - 2 * b | out |`, where `out = a + b - 2 * a * b`. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to. * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that contains a boolean value. * `b`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that contains a boolean value. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#554-556) #### fn [not](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.not) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `!a` assumeing `a` is boolean. Defines a vertical gate of form | 1 - a | a | 1 | 1 |, where 1 - a = out. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to. * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that contains a boolean value. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#594-641) #### fn [bits\_to\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.bits_to_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     bits: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") > Constrains and returns an indicator vector from a slice of boolean values, where `output[idx] = 1` iff idx = (the number represented by `bits` in binary little endian), otherwise `output[idx] = 0`. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `bits`: slice of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") ’s that contains boolean values ##### [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#assumptions) * `bits` is non-empty [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#649-685) #### fn [idx\_to\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.idx_to_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     idx: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     len: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") > Constrains and returns a [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") `indicator` of length `len`, where `indicator[i] == 1 if i == idx otherwise 0`, if `idx >= len` then `indicator` is all zeros. Assumes `len` is greater than 0. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `idx`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") index of the indicator vector to be set to 1 * `len`: length of the `indicator` vector [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#694-716) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     indicator: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") where     Q: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >, Constrains the inner product of `a` and `indicator` and returns `a[idx]` (e.g. the value of `a` at `idx`). Assumes that `a` and `indicator` are non-empty iterators of the same length, the values of `indicator` are boolean, and that `indicator` has at most one `1` bit. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: Iterator of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") ’s that contains field elements * `indicator`: Iterator of [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "AssignedValue") ’s where indicator\[i\] == 1 if i == `idx`, otherwise 0 [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#724-739) #### fn [select\_from\_idx](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.select_from_idx) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     cells: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     idx: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") where     Q: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >, Constrains and returns `cells[idx]` if `idx < cells.len()`, otherwise return 0. Assumes that `cells` and `idx` are non-empty iterators of the same length. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `cells`: Iterator of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") s to select from * `idx`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") with value `idx` where `idx` is the index of the cell to be selected [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#746-766) #### fn [is\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.is_zero) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains that a cell is equal to 0 and returns `1` if `a = 0`, otherwise `0`. Defines a vertical gate of form `| out | a | inv | 1 | 0 | a | out | 0 |`, where out = 1 if a = 0, otherwise out = 0. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") value to be constrained [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#772-780) #### fn [is\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.is_equal) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains that the value of two cells are equal: b - a = 0, returns `1` if `a = b`, otherwise `0`. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") value * `b`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") value to compare to `a` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#806-844) #### fn [lagrange\_and\_eval](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.lagrange_and_eval) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     coords: &\[([AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ , [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ )\],     x: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> ([AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") , [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) Performs and constrains Lagrange interpolation on `coords` and evaluates the resulting polynomial at `x`. Given pairs `coords[i] = (x_i, y_i)`, let `f` be the unique degree `len(coords) - 1` polynomial such that `f(x_i) = y_i` for all `i`. Returns: (f(x), Prod\_i(x - x\_i)) * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `coords`: immutable reference to a slice of tuples of [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "AssignedValue") s representing the points to interpolate over such that `coords[i] = (x_i, y_i)` * `x`: x-coordinate of the point to evaluate `f` at ##### [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#assumptions-1) * `coords` is non-empty Implementors[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#implementors) ----------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#973-1237) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#impl-GateInstructions%3CF%3E-for-GateChip%3CF%3E) ### impl [GateInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html "trait halo2_base::gates::flex_gate::GateInstructions") for [GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "struct halo2_base::gates::flex_gate::GateChip") --- # crt in halo2_ecc::bigint::check_carry_mod_to_zero - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[check\_carry\_mod\_to\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/check_carry_mod_to_zero/index.html) ::[crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/check_carry_mod_to_zero/fn.crt.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ===================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/check_carry_mod_to_zero.rs.html#16-125) · [\[−\]](javascript:void(0) "collapse all docs") pub fn crt(    range: &impl RangeInstructions,    ctx: &mut Context,    a: CRTInteger,    k_bits: usize,    modulus: &BigInt,    mod_vec: &[F],    mod_native: F,    limb_bits: usize,    limb_bases: &[F],    limb_base_big: &BigInt) --- # assign in halo2_ecc::bigint::big_less_than - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[big\_less\_than](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_less_than/index.html) ::[assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/big_less_than/fn.assign.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =========================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/big_less_than.rs.html#6-17) · [\[−\]](javascript:void(0) "collapse all docs") pub fn assign(    range: &impl RangeInstructions,    ctx: &mut Context,    a: impl Into>,    b: impl Into>,    limb_bits: usize,    limb_base: F) -> AssignedValue --- # crt in halo2_ecc::bigint::carry_mod - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[carry\_mod](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/carry_mod/index.html) ::[crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/carry_mod/fn.crt.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/carry_mod.rs.html#30-197) · [\[−\]](javascript:void(0) "collapse all docs") pub fn crt(    range: &impl RangeInstructions,    ctx: &mut Context,    a: CRTInteger,    k_bits: usize,    modulus: &BigInt,    mod_vec: &[F],    mod_native: F,    limb_bits: usize,    limb_bases: &[F],    limb_base_big: &BigInt) -> ProperCrtUint Expand description [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/carry_mod/fn.crt.html#assumptions) ----------------------------------------------------------------------------------------------------------- * abs(a) <= 2n \* k - 1 + F::NUM\_BITS - 2 (A weaker assumption is also enough, but this is good enough for forseeable use cases) * `native_modulus::` requires _exactly_ `k = a.limbs.len()` limbs to represent --- # multi_scalar_multiply in halo2_ecc::ecc - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[multi\_scalar\_multiply](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.multi_scalar_multiply.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#650-761) · [\[−\]](javascript:void(0) "collapse all docs") pub fn multi_scalar_multiply(    chip: &FC,    ctx: &mut Context,    P: &[EcPoint],    scalars: Vec>>,    max_bits: usize,    window_bits: usize) -> EcPointwhere    FC: FieldChip + Selectable,    C: CurveAffineExt, Expand description [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.multi_scalar_multiply.html#assumptions) ---------------------------------------------------------------------------------------------------------------- * `points.len() == scalars.len()` * `scalars[i].len() == scalars[j].len()` for all `i, j` * `scalars[i]` is less than the order of `P` * `scalars[i][j] < 2^{max_bits} for all j` * `max_bits <= modulus::.bits()`, and equality only allowed when the order of `P` equals the modulus of `F` * `points` are all on the curve or the point at infinity * `points[i]` is allowed to be (0, 0) to represent the point at infinity (identity point) * Currently implementation assumes that the only point on curve with y-coordinate equal to `0` is identity point --- # truncate in halo2_ecc::bigint::check_carry_to_zero - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[check\_carry\_to\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/check_carry_to_zero/index.html) ::[truncate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/check_carry_to_zero/fn.truncate.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/check_carry_to_zero.rs.html#27-86) · [\[−\]](javascript:void(0) "collapse all docs") pub fn truncate(    range: &impl RangeInstructions,    ctx: &mut Context,    a: OverflowInteger,    limb_bits: usize,    limb_base: F,    limb_base_big: &BigInt) --- # BaseFieldEccChip in halo2_ecc::ecc - Rust Type Definition [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[BaseFieldEccChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/type.BaseFieldEccChip.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#807-811) · [\[−\]](javascript:void(0) "collapse all docs") pub type BaseFieldEccChip<'chip, C> = EccChip<'chip, ::ScalarExt, FpChip<'chip, ::ScalarExt, ::Base>>; --- # Word in zkevm_keccak::util::eth_types - Rust Type Definition [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[util](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html) ::[eth\_types](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/index.html) ::[Word](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Word.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#50) · [\[−\]](javascript:void(0) "collapse all docs") pub type Word = U256; Expand description Ethereum Word (256 bits). --- # crt in halo2_ecc::bigint::mul_no_carry - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[mul\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/mul_no_carry/index.html) ::[crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/mul_no_carry/fn.crt.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mul_no_carry.rs.html#37-49) · [\[−\]](javascript:void(0) "collapse all docs") pub fn crt(    gate: &impl GateInstructions,    ctx: &mut Context,    a: CRTInteger,    b: CRTInteger,    num_limbs_log2_ceil: usize) -> CRTInteger --- # scalar_multiply in halo2_ecc::ecc - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[scalar\_multiply](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.scalar_multiply.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =============================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#487-585) · [\[−\]](javascript:void(0) "collapse all docs") pub fn scalar_multiply(    chip: &FC,    ctx: &mut Context,    P: EcPoint,    scalar: Vec>,    max_bits: usize,    window_bits: usize) -> EcPointwhere    FC: FieldChip + Selectable,    C: CurveAffineExt, Expand description Computes `[scalar] * P` on short Weierstrass curve `y^2 = x^3 + b` * `scalar` is represented as a reference array of `AssignedValue`s * `scalar = sum_i scalar_i * 2^{max_bits * i}` * an array of length > 1 is needed when `scalar` exceeds the modulus of scalar field `F` [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.scalar_multiply.html#assumptions) ---------------------------------------------------------------------------------------------------------- * `window_bits != 0` * The order of `P` is at least `2^{window_bits}` (in particular, `P` is not the point at infinity) * The curve has no points of order 2. * `scalar_i < 2^{max_bits} for all i` * `max_bits <= modulus::.bits()`, and equality only allowed when the order of `P` equals the modulus of `F` --- # truncate in halo2_ecc::bigint::mul_no_carry - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[mul\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/mul_no_carry/index.html) ::[truncate](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/mul_no_carry/fn.truncate.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/mul_no_carry.rs.html#9-35) · [\[−\]](javascript:void(0) "collapse all docs") pub fn truncate(    gate: &impl GateInstructions,    ctx: &mut Context,    a: OverflowInteger,    b: OverflowInteger,    num_limbs_log2_ceil: usize) -> OverflowInteger Expand description [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/mul_no_carry/fn.truncate.html#assumptions) ------------------------------------------------------------------------------------------------------------------- * `a` and `b` have the same number of limbs `k` * `k` is nonzero * `num_limbs_log2_ceil = log2_ceil(k)` * `log2_ceil(k) + a.max_limb_bits + b.max_limb_bits <= F::NUM_BITS as usize - 2` --- # strict_ec_select_from_bits in halo2_ecc::ecc - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[strict\_ec\_select\_from\_bits](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fn.strict_ec_select_from_bits.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/mod.rs.html#458-474) · [\[−\]](javascript:void(0) "collapse all docs") pub fn strict_ec_select_from_bits(    chip: &FC,    ctx: &mut Context,    points: &[StrictEcPoint],    sel: &[AssignedValue]) -> StrictEcPointwhere    FC: FieldChip + Selectable + Selectable, --- # assign in halo2_ecc::bigint::negative - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[negative](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/negative/index.html) ::[assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/negative/fn.assign.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/negative.rs.html#4-11) · [\[−\]](javascript:void(0) "collapse all docs") pub fn assign(    gate: &impl GateInstructions,    ctx: &mut Context,    a: OverflowInteger) -> OverflowInteger --- # assign in halo2_ecc::bigint::scalar_mul_and_add_no_carry - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[scalar\_mul\_and\_add\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_and_add_no_carry/index.html) ::[assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_and_add_no_carry/fn.assign.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/scalar_mul_and_add_no_carry.rs.html#18-34) · [\[−\]](javascript:void(0) "collapse all docs") pub fn assign(    gate: &impl GateInstructions,    ctx: &mut Context,    a: OverflowInteger,    b: OverflowInteger,    c_f: F,    c_log2_ceil: usize) -> OverflowInteger Expand description compute a \* c + b = b + a \* c [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_and_add_no_carry/fn.assign.html#assumptions) -------------------------------------------------------------------------------------------------------------------------------- * `a, b` have same number of limbs * Number of limbs is nonzero * `c_log2_ceil = log2_ceil(c)` where `c` is the BigUint value of `c_f` --- # crt in halo2_ecc::bigint::scalar_mul_and_add_no_carry - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[scalar\_mul\_and\_add\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_and_add_no_carry/index.html) ::[crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_and_add_no_carry/fn.crt.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/scalar_mul_and_add_no_carry.rs.html#37-58) · [\[−\]](javascript:void(0) "collapse all docs") pub fn crt(    gate: &impl GateInstructions,    ctx: &mut Context,    a: CRTInteger,    b: CRTInteger,    c: i64) -> CRTInteger Expand description compute a \* c + b = b + a \* c --- # assign in halo2_ecc::bigint::scalar_mul_no_carry - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[scalar\_mul\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_no_carry/index.html) ::[assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_no_carry/fn.assign.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/scalar_mul_no_carry.rs.html#9-18) · [\[−\]](javascript:void(0) "collapse all docs") pub fn assign(    gate: &impl GateInstructions,    ctx: &mut Context,    a: OverflowInteger,    c_f: F,    c_log2_ceil: usize) -> OverflowInteger --- # crt in halo2_ecc::bigint::scalar_mul_no_carry - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[scalar\_mul\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_no_carry/index.html) ::[crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/scalar_mul_no_carry/fn.crt.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/scalar_mul_no_carry.rs.html#20-39) · [\[−\]](javascript:void(0) "collapse all docs") pub fn crt(    gate: &impl GateInstructions,    ctx: &mut Context,    a: CRTInteger,    c: i64) -> CRTInteger --- # assign in halo2_ecc::bigint::select - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select/index.html) ::[assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select/fn.assign.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ==================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/select.rs.html#9-24) · [\[−\]](javascript:void(0) "collapse all docs") pub fn assign(    gate: &impl GateInstructions,    ctx: &mut Context,    a: OverflowInteger,    b: OverflowInteger,    sel: AssignedValue) -> OverflowInteger Expand description [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select/fn.assign.html#assumptions) ----------------------------------------------------------------------------------------------------------- * `a, b` have same number of limbs * Number of limbs is nonzero --- # crt in halo2_ecc::bigint::select - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[select](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select/index.html) ::[crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select/fn.crt.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/select.rs.html#26-50) · [\[−\]](javascript:void(0) "collapse all docs") pub fn crt(    gate: &impl GateInstructions,    ctx: &mut Context,    a: CRTInteger,    b: CRTInteger,    sel: AssignedValue) -> CRTInteger --- # assign in halo2_ecc::bigint::select_by_indicator - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select_by_indicator/index.html) ::[assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select_by_indicator/fn.assign.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/select_by_indicator.rs.html#8-26) · [\[−\]](javascript:void(0) "collapse all docs") pub fn assign(    gate: &impl GateInstructions,    ctx: &mut Context,    a: &[OverflowInteger],    coeffs: &[AssignedValue]) -> OverflowInteger Expand description only use case is when coeffs has only a single 1, rest are 0 --- # crt in halo2_ecc::bigint::select_by_indicator - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select_by_indicator/index.html) ::[crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/select_by_indicator/fn.crt.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/select_by_indicator.rs.html#29-69) · [\[−\]](javascript:void(0) "collapse all docs") pub fn crt(    gate: &impl GateInstructions,    ctx: &mut Context,    a: &[impl AsRef>],    coeffs: &[AssignedValue],    limb_bases: &[F]) -> CRTInteger Expand description only use case is when coeffs has only a single 1, rest are 0 --- # assign in halo2_ecc::bigint::sub - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[sub](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub/index.html) ::[assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub/fn.assign.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =========================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/sub.rs.html#13-60) · [\[−\]](javascript:void(0) "collapse all docs") pub fn assign(    range: &impl RangeInstructions,    ctx: &mut Context,    a: impl Into>,    b: impl Into>,    limb_bits: usize,    limb_base: F) -> (OverflowInteger, AssignedValue) Expand description [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub/fn.assign.html#assumptions) -------------------------------------------------------------------------------------------------------- * Should only be called on integers a, b in proper representation with all limbs having at most `limb_bits` number of bits * `a, b` have same nonzero number of limbs --- # crt in halo2_ecc::bigint::sub - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[sub](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub/index.html) ::[crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub/fn.crt.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ===================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/sub.rs.html#65-79) · [\[−\]](javascript:void(0) "collapse all docs") pub fn crt(    range: &impl RangeInstructions,    ctx: &mut Context,    a: ProperCrtUint,    b: ProperCrtUint,    limb_bits: usize,    limb_base: F) -> (CRTInteger, AssignedValue) Expand description [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub/fn.crt.html#assumptions) ----------------------------------------------------------------------------------------------------- * `a, b` are proper CRT representations of integers with the same number of limbs --- # assign in halo2_ecc::bigint::sub_no_carry - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[sub\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub_no_carry/index.html) ::[assign](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub_no_carry/fn.assign.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/sub_no_carry.rs.html#8-22) · [\[−\]](javascript:void(0) "collapse all docs") pub fn assign(    gate: &impl GateInstructions,    ctx: &mut Context,    a: OverflowInteger,    b: OverflowInteger) -> OverflowInteger Expand description [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub_no_carry/fn.assign.html#assumptions) ----------------------------------------------------------------------------------------------------------------- * `a, b` have same number of limbs --- # Address in zkevm_keccak::util::eth_types - Rust Type Definition [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[util](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html) ::[eth\_types](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/index.html) ::[Address](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Address.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================================================================================ [\[−\]](javascript:void(0) "collapse all docs") pub type Address = H160; Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Address.html#trait-implementations) -------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#111-118) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Address.html#impl-ToScalar%3CF%3E-for-Address) ### impl [ToScalar](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToScalar.html "trait zkevm_keccak::util::eth_types::ToScalar") for [Address](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Address.html "type zkevm_keccak::util::eth_types::Address") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#112-117) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Address.html#method.to_scalar) #### fn [to\_scalar](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToScalar.html#tymethod.to_scalar) (&self) -> [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") Convert the type to a scalar value. [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#93-99) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Address.html#impl-ToWord-for-Address) ### impl [ToWord](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToWord.html "trait zkevm_keccak::util::eth_types::ToWord") for [Address](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Address.html "type zkevm_keccak::util::eth_types::Address") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#94-98) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Address.html#method.to_word) #### fn [to\_word](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToWord.html#tymethod.to_word) (&self) -> [Word](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Word.html "type zkevm_keccak::util::eth_types::Word") Convert the type to a [`Word`](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Word.html "Word") . --- # crt in halo2_ecc::bigint::sub_no_carry - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bigint](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/index.html) ::[sub\_no\_carry](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub_no_carry/index.html) ::[crt](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bigint/sub_no_carry/fn.crt.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bigint/sub_no_carry.rs.html#24-34) · [\[−\]](javascript:void(0) "collapse all docs") pub fn crt(    gate: &impl GateInstructions,    ctx: &mut Context,    a: CRTInteger,    b: CRTInteger) -> CRTInteger --- # fp12_multiply_with_line_equal in halo2_ecc::bn254::pairing - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bn254](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html) ::[pairing](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/index.html) ::[fp12\_multiply\_with\_line\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.fp12_multiply_with_line_equal.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ===================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#182-191) · [\[−\]](javascript:void(0) "collapse all docs") pub fn fp12_multiply_with_line_equal(    fp2_chip: &Fp2Chip<'_, F>,    ctx: &mut Context,    g: &FqPoint,    Q: &EcPoint>,    P: &EcPoint>) -> FqPoint --- # fp12_multiply_with_line_unequal in halo2_ecc::bn254::pairing - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bn254](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html) ::[pairing](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/index.html) ::[fp12\_multiply\_with\_line\_unequal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.fp12_multiply_with_line_unequal.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#165-174) · [\[−\]](javascript:void(0) "collapse all docs") pub fn fp12_multiply_with_line_unequal(    fp2_chip: &Fp2Chip<'_, F>,    ctx: &mut Context,    g: &FqPoint,    Q: (&EcPoint>, &EcPoint>),    P: &EcPoint>) -> FqPoint --- # miller_loop_BN in halo2_ecc::bn254::pairing - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bn254](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html) ::[pairing](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/index.html) ::[miller\_loop\_BN](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.miller_loop_BN.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ===================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#211-293) · [\[−\]](javascript:void(0) "collapse all docs") pub fn miller_loop_BN(    ecc_chip: &EccChip<'_, F, Fp2Chip<'_, F>>,    ctx: &mut Context,    Q: &EcPoint>,    P: &EcPoint>,    pseudo_binary_encoding: &[i8]) -> FqPoint --- # multi_miller_loop_BN in halo2_ecc::bn254::pairing - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bn254](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html) ::[pairing](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/index.html) ::[multi\_miller\_loop\_BN](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.multi_miller_loop_BN.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#297-391) · [\[−\]](javascript:void(0) "collapse all docs") pub fn multi_miller_loop_BN(    ecc_chip: &EccChip<'_, F, Fp2Chip<'_, F>>,    ctx: &mut Context,    pairs: Vec<(&EcPoint>, &EcPoint>)>,    pseudo_binary_encoding: &[i8]) -> FqPoint --- # neg_twisted_frobenius in halo2_ecc::bn254::pairing - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bn254](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html) ::[pairing](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/index.html) ::[neg\_twisted\_frobenius](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.neg_twisted_frobenius.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =================================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#426-444) · [\[−\]](javascript:void(0) "collapse all docs") pub fn neg_twisted_frobenius(    ecc_chip: &EccChip<'_, F, Fp2Chip<'_, F>>,    ctx: &mut Context,    Q: impl Into>>,    c2: impl Into>,    c3: impl Into>) -> EcPoint> --- # sparse_fp12_multiply in halo2_ecc::bn254::pairing - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bn254](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html) ::[pairing](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/index.html) ::[sparse\_fp12\_multiply](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.sparse_fp12_multiply.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#98-157) · [\[−\]](javascript:void(0) "collapse all docs") pub fn sparse_fp12_multiply(    fp2_chip: &Fp2Chip<'_, F>,    ctx: &mut Context,    a: &FqPoint,    b_fp2_coeffs: &[Option>]) -> FqPoint --- # sparse_line_function_equal in halo2_ecc::bn254::pairing - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bn254](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html) ::[pairing](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/index.html) ::[sparse\_line\_function\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.sparse_line_function_equal.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#63-94) · [\[−\]](javascript:void(0) "collapse all docs") pub fn sparse_line_function_equal(    fp2_chip: &Fp2Chip<'_, F>,    ctx: &mut Context,    Q: &EcPoint>,    P: &EcPoint>) -> Vec>> --- # zkevm_keccak::keccak_packed_multi - Rust Module [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[keccak\_packed\_multi](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#1-2040) · [\[−\]](javascript:void(0) "collapse all docs") Expand description Keccak packed multi [Structs](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/index.html#structs) -------------------------------------------------------------------------------------------------------- [KeccakCircuitConfig](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html "zkevm_keccak::keccak_packed_multi::KeccakCircuitConfig struct") KeccakConfig [KeccakRow](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html "zkevm_keccak::keccak_packed_multi::KeccakRow struct") KeccakRow [KeccakTable](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html "zkevm_keccak::keccak_packed_multi::KeccakTable struct") Keccak Table, used to verify keccak hashing from RLC’ed input. [Functions](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/index.html#functions) ------------------------------------------------------------------------------------------------------------ [assign\_advice\_custom](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.assign_advice_custom.html "zkevm_keccak::keccak_packed_multi::assign_advice_custom fn") [assign\_fixed\_custom](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.assign_fixed_custom.html "zkevm_keccak::keccak_packed_multi::assign_fixed_custom fn") [get\_keccak\_capacity](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.get_keccak_capacity.html "zkevm_keccak::keccak_packed_multi::get_keccak_capacity fn") The number of keccak\_f’s that can be done in this circuit [get\_num\_keccak\_f](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.get_num_keccak_f.html "zkevm_keccak::keccak_packed_multi::get_num_keccak_f fn") [get\_num\_rows\_per\_round](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.get_num_rows_per_round.html "zkevm_keccak::keccak_packed_multi::get_num_rows_per_round fn") [keccak\_phase0](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.keccak_phase0.html "zkevm_keccak::keccak_packed_multi::keccak_phase0 fn") Witness generation in `FirstPhase` for a keccak hash digest without computing RLCs, which are deferred to `SecondPhase`. [keccak\_phase1](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.keccak_phase1.html "zkevm_keccak::keccak_packed_multi::keccak_phase1 fn") Computes and assigns the input RLC values (but not the output RLC values: see `multi_keccak_phase1`). [multi\_keccak\_phase0](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.multi_keccak_phase0.html "zkevm_keccak::keccak_packed_multi::multi_keccak_phase0 fn") Returns vector of KeccakRow and vector of hash digest outputs. [multi\_keccak\_phase1](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.multi_keccak_phase1.html "zkevm_keccak::keccak_packed_multi::multi_keccak_phase1 fn") Computes and assigns the input and output RLC values. --- # sparse_line_function_unequal in halo2_ecc::bn254::pairing - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bn254](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html) ::[pairing](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/index.html) ::[sparse\_line\_function\_unequal](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.sparse_line_function_unequal.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#24-53) · [\[−\]](javascript:void(0) "collapse all docs") pub fn sparse_line_function_unequal(    fp2_chip: &Fp2Chip<'_, F>,    ctx: &mut Context,    Q: (&EcPoint>, &EcPoint>),    P: &EcPoint>) -> Vec>> --- # twisted_frobenius in halo2_ecc::bn254::pairing - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[bn254](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/index.html) ::[pairing](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/index.html) ::[twisted\_frobenius](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/bn254/pairing/fn.twisted_frobenius.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/bn254/pairing.rs.html#400-418) · [\[−\]](javascript:void(0) "collapse all docs") pub fn twisted_frobenius(    ecc_chip: &EccChip<'_, F, Fp2Chip<'_, F>>,    ctx: &mut Context,    Q: impl Into>>,    c2: impl Into>,    c3: impl Into>) -> EcPoint> --- # ecdsa_verify_no_pubkey_check in halo2_ecc::ecc::ecdsa - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[ecdsa](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/ecdsa/index.html) ::[ecdsa\_verify\_no\_pubkey\_check](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/ecdsa/fn.ecdsa_verify_no_pubkey_check.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ===================================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/ecdsa.rs.html#15-104) · [\[−\]](javascript:void(0) "collapse all docs") pub fn ecdsa_verify_no_pubkey_check(    chip: &EccChip<'_, F, FpChip<'_, F, CF>>,    ctx: &mut Context,    pubkey: EcPoint as FieldChip>::FieldPoint>,    r: ProperCrtUint,    s: ProperCrtUint,    msghash: ProperCrtUint,    var_window_bits: usize,    fixed_window_bits: usize) -> AssignedValuewhere    GA: CurveAffineExt, Expand description **WARNING**: Only use this function if `1 / (p - n)` is very small (e.g., < 2\-100) `pubkey` should not be the identity point --- # msm_par in halo2_ecc::ecc::fixed_base - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[fixed\_base](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fixed_base/index.html) ::[msm\_par](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fixed_base/fn.msm_par.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/fixed_base.rs.html#112-219) · [\[−\]](javascript:void(0) "collapse all docs") pub fn msm_par(    chip: &EccChip<'_, F, FC>,    builder: &mut GateThreadBuilder,    points: &[C],    scalars: Vec>>,    max_scalar_bits_per_cell: usize,    window_bits: usize,    phase: usize) -> EcPointwhere    F: PrimeField,    C: CurveAffineExt,    FC: FieldChip + Selectable, Expand description [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fixed_base/fn.msm_par.html#assumptions) ------------------------------------------------------------------------------------------------------------- * `points.len() = scalars.len()` * `scalars[i].len() = scalars[j].len()` for all `i,j` * `points` are all on the curve * `points[i]` is not point at infinity (0, 0); these should be filtered out beforehand * The integer value of `scalars[i]` is less than the order of `points[i]` * Output may be point at infinity, in which case (0, 0) is returned --- # scalar_multiply in halo2_ecc::ecc::fixed_base - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[fixed\_base](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fixed_base/index.html) ::[scalar\_multiply](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fixed_base/fn.scalar_multiply.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/fixed_base.rs.html#21-100) · [\[−\]](javascript:void(0) "collapse all docs") pub fn scalar_multiply(    chip: &FC,    ctx: &mut Context,    point: &C,    scalar: Vec>,    max_bits: usize,    window_bits: usize) -> EcPointwhere    F: PrimeField,    C: CurveAffineExt,    FC: FieldChip + Selectable, Expand description Computes `[scalar] * P` on y^2 = x^3 + b where `P` is fixed (constant) * `scalar` is represented as a non-empty reference array of `AssignedValue`s * `scalar = sum_i scalar_i * 2^{max_bits * i}` * an array of length > 1 is needed when `scalar` exceeds the modulus of scalar field `F` [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/fixed_base/fn.scalar_multiply.html#assumptions) --------------------------------------------------------------------------------------------------------------------- * `scalar_i < 2^{max_bits} for all i` (constrained by num\_to\_bits) * `scalar > 0` * `max_bits <= modulus::.bits()` --- # mul_no_carry_w6 in halo2_ecc::fields::fp12 - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html) ::[fp12](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/index.html) ::[mul\_no\_carry\_w6](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/fn.mul_no_carry_w6.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp12.rs.html#96-108) · [\[−\]](javascript:void(0) "collapse all docs") pub fn mul_no_carry_w6, const XI_0: i64>(    fp_chip: &FC,    ctx: &mut Context,    a: FieldVector) -> FieldVector Expand description multiply Fp2 elts: (a0 + a1 \* u) \* (XI0 + u) without carry [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp12/fn.mul_no_carry_w6.html#assumptions) ------------------------------------------------------------------------------------------------------------------ * `a` is `Fp2` point represented as `FieldVector` with degree = 2 --- # multi_exp_par in halo2_ecc::ecc::pippenger - Rust Function [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/index.html) ::[pippenger](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/pippenger/index.html) ::[multi\_exp\_par](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/pippenger/fn.multi_exp_par.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/ecc/pippenger.rs.html#219-341) · [\[−\]](javascript:void(0) "collapse all docs") pub fn multi_exp_par(    chip: &FC,    builder: &mut GateThreadBuilder,    points: &[EcPoint],    scalars: Vec>>,    max_scalar_bits_per_cell: usize,    clump_factor: usize,    phase: usize) -> EcPointwhere    FC: FieldChip + Selectable + Selectable,    C: CurveAffineExt, Expand description Multi-thread witness generation for multi-scalar multiplication. [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/ecc/pippenger/fn.multi_exp_par.html#assumptions) ------------------------------------------------------------------------------------------------------------------ * `points.len() == scalars.len()` * `scalars[i].len() == scalars[j].len()` for all `i, j` * `points` are all on the curve or the point at infinity * `points[i]` is allowed to be (0, 0) to represent the point at infinity (identity point) * Currently implementation assumes that the only point on curve with y-coordinate equal to `0` is identity point --- # BaseFieldChip in halo2_ecc::fields::fp - Rust Type Definition [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html) ::[fp](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/index.html) ::[BaseFieldChip](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/type.BaseFieldChip.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =============================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#21-22) · [\[−\]](javascript:void(0) "collapse all docs") pub type BaseFieldChip<'range, C> = FpChip<'range, ::ScalarExt, ::Base>; --- # zkevm_keccak::util - Rust Module [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[util](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util.rs.html#1-412) · [\[−\]](javascript:void(0) "collapse all docs") Expand description Util Utility traits, functions used in the crate. [Modules](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html#modules) ----------------------------------------------------------------------------------------- [constraint\_builder](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/index.html "zkevm_keccak::util::constraint_builder mod") [eth\_types](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/index.html "zkevm_keccak::util::eth_types mod") Ethereum and Evm types used to deserialize responses from web3 / geth. [expression](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/expression/index.html "zkevm_keccak::util::expression mod") [scatter](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/scatter/index.html "zkevm_keccak::util::scatter mod") Scatters a value into a packed word constant [to\_bytes](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/to_bytes/index.html "zkevm_keccak::util::to_bytes mod") Packs bits into bytes [Structs](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html#structs) ----------------------------------------------------------------------------------------- [PartInfo](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html "zkevm_keccak::util::PartInfo struct") Description of which bits (positions) a part contains [WordParts](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html "zkevm_keccak::util::WordParts struct") Description of how a word is split into parts [Constants](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html#constants) --------------------------------------------------------------------------------------------- [ABSORB\_WIDTH\_PER\_ROW](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.ABSORB_WIDTH_PER_ROW.html "zkevm_keccak::util::ABSORB_WIDTH_PER_ROW constant") [ABSORB\_WIDTH\_PER\_ROW\_BYTES](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.ABSORB_WIDTH_PER_ROW_BYTES.html "zkevm_keccak::util::ABSORB_WIDTH_PER_ROW_BYTES constant") [BIT\_COUNT](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.BIT_COUNT.html "zkevm_keccak::util::BIT_COUNT constant") [BIT\_SIZE](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.BIT_SIZE.html "zkevm_keccak::util::BIT_SIZE constant") [KECCAK\_WIDTH](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.KECCAK_WIDTH.html "zkevm_keccak::util::KECCAK_WIDTH constant") [KECCAK\_WIDTH\_IN\_BITS](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.KECCAK_WIDTH_IN_BITS.html "zkevm_keccak::util::KECCAK_WIDTH_IN_BITS constant") [NUM\_BITS\_PER\_BYTE](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.NUM_BITS_PER_BYTE.html "zkevm_keccak::util::NUM_BITS_PER_BYTE constant") [NUM\_BITS\_PER\_WORD](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.NUM_BITS_PER_WORD.html "zkevm_keccak::util::NUM_BITS_PER_WORD constant") [NUM\_BYTES\_PER\_WORD](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.NUM_BYTES_PER_WORD.html "zkevm_keccak::util::NUM_BYTES_PER_WORD constant") [NUM\_BYTES\_TO\_ABSORB](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.NUM_BYTES_TO_ABSORB.html "zkevm_keccak::util::NUM_BYTES_TO_ABSORB constant") [NUM\_BYTES\_TO\_SQUEEZE](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.NUM_BYTES_TO_SQUEEZE.html "zkevm_keccak::util::NUM_BYTES_TO_SQUEEZE constant") [NUM\_ROUNDS](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.NUM_ROUNDS.html "zkevm_keccak::util::NUM_ROUNDS constant") [NUM\_WORDS\_TO\_ABSORB](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.NUM_WORDS_TO_ABSORB.html "zkevm_keccak::util::NUM_WORDS_TO_ABSORB constant") [NUM\_WORDS\_TO\_SQUEEZE](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.NUM_WORDS_TO_SQUEEZE.html "zkevm_keccak::util::NUM_WORDS_TO_SQUEEZE constant") [RATE](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.RATE.html "zkevm_keccak::util::RATE constant") [RATE\_IN\_BITS](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.RATE_IN_BITS.html "zkevm_keccak::util::RATE_IN_BITS constant") [Functions](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html#functions) --------------------------------------------------------------------------------------------- [field\_xor](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.field_xor.html "zkevm_keccak::util::field_xor fn") Calculates a ^ b with a and b field elements [get\_absorb\_positions](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.get_absorb_positions.html "zkevm_keccak::util::get_absorb_positions fn") The words that absorb data [get\_degree](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.get_degree.html "zkevm_keccak::util::get_degree fn") Get the degree of the circuit from the KECCAK\_DEGREE env variable [get\_num\_bits\_per\_lookup](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.get_num_bits_per_lookup.html "zkevm_keccak::util::get_num_bits_per_lookup fn") Returns how many bits we can process in a single lookup given the range of values the bit can have and the height of the circuit. [get\_rotate\_count](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.get_rotate_count.html "zkevm_keccak::util::get_rotate_count fn") Gets the rotation count in parts [into\_bits](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.into_bits.html "zkevm_keccak::util::into_bits fn") Converts bytes into bits [pack](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.pack.html "zkevm_keccak::util::pack fn") Pack bits in the range \[0,BIT\_SIZE\[ into a sparse keccak word\ \ [pack\_part](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.pack_part.html "zkevm_keccak::util::pack_part fn")\ \ Decodes the bits using the position data found in the part info\ \ [pack\_u64](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.pack_u64.html "zkevm_keccak::util::pack_u64 fn")\ \ Pack bits stored in a u64 value into a sparse keccak word\ \ [pack\_with\_base](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.pack_with_base.html "zkevm_keccak::util::pack_with_base fn")\ \ Pack bits in the range \[0,BIT\_SIZE\[ into a sparse keccak word with the specified bit base\ \ [rotate](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.rotate.html "zkevm_keccak::util::rotate fn")\ \ Rotates a word that was split into parts to the right\ \ [rotate\_left](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.rotate_left.html "zkevm_keccak::util::rotate_left fn")\ \ Rotates bits left\ \ [rotate\_rev](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.rotate_rev.html "zkevm_keccak::util::rotate_rev fn")\ \ Rotates a word that was split into parts to the left\ \ [target\_part\_sizes](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.target_part_sizes.html "zkevm_keccak::util::target_part_sizes fn")\ \ Returns the size (in bits) of each part size when splitting up a keccak word in parts of `part_size`\ \ [unpack](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.unpack.html "zkevm_keccak::util::unpack fn")\ \ Unpack a sparse keccak word into bits in the range \[0,BIT\_SIZE\[ --- # FpConfig in halo2_ecc::fields::fp - Rust Type Definition [halo2\_ecc](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/index.html) ::[fields](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/index.html) ::[fp](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/index.html) ::[FpConfig](https://axiom-crypto.github.io/halo2-lib/halo2_ecc/fields/fp/type.FpConfig.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ===================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_ecc/fields/fp.rs.html#24) · [\[−\]](javascript:void(0) "collapse all docs") pub type FpConfig = RangeConfig; --- # halo2_base::utils::fs - Rust Module [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[fs](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fs/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =============================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#338) · [\[−\]](javascript:void(0) "collapse all docs") Expand description Module for reading parameters for Halo2 proving system from the file system. [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fs/index.html#functions) ----------------------------------------------------------------------------------------------- [gen\_srs](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fs/fn.gen_srs.html "halo2_base::utils::fs::gen_srs fn") Generates the SRS for the KZG scheme and writes it to a file found in “./params/kzg\_bn2\_{k}.srs`or`{dir}/kzg\_bn254\_{k}.srs`if`PARAMS\_DIR\` env var is specified, creates a file it if it does not exist” [read\_or\_create\_srs](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fs/fn.read_or_create_srs.html "halo2_base::utils::fs::read_or_create_srs fn") Attempts to read the srs from a file found in `./params/kzg_bn254_{k}.srs` or `{dir}/kzg_bn254_{k}.srs` if `PARAMS_DIR` env var is specified, creates a file it if it does not exist. [read\_params](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fs/fn.read_params.html "halo2_base::utils::fs::read_params fn") Reads the srs from a file found in `./params/kzg_bn254_{k}.srs` or `{dir}/kzg_bn254_{k}.srs` if `PARAMS_DIR` env var is specified. --- # halo2_base::utils::testing - Rust Module [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[testing](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/testing/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#406) · [\[−\]](javascript:void(0) "collapse all docs") Expand description Utilities for testing [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/testing/index.html#functions) ---------------------------------------------------------------------------------------------------- [check\_proof](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/testing/fn.check_proof.html "halo2_base::utils::testing::check_proof fn") helper function to verify a proof [gen\_proof](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/testing/fn.gen_proof.html "halo2_base::utils::testing::gen_proof fn") helper function to generate a proof with real prover --- # RangeChip in halo2_base::gates::range - Rust Struct [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[range](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/index.html) ::[RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#433-447) · [\[−\]](javascript:void(0) "collapse all docs") pub struct RangeChip { pub gate: GateChip, pub lookup_bits: usize, pub limb_bases: Vec>, /* private fields */ } Expand description A chip that implements RangeInstructions which provides methods to constrain a field element `x` is within a range of bits. Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#fields) ------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#structfield.gate) `gate: [GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "struct halo2_base::gates::flex_gate::GateChip") ` Underlying [GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "GateChip") for this chip. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#structfield.lookup_bits) `lookup_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ` Defines the number of bits represented in the lookup table \[0,2lookup\_bits).\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#structfield.limb_bases)\ `limb_bases: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >`\ \ [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec")\ of powers of `2 ** lookup_bits` represented as [QuantumCell::Constant](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html#variant.Constant "QuantumCell::Constant")\ . These are precomputed and cached as a performance optimization for later limb decompositions. We precompute up to the higher power that fits in `F`, which is `2 ** ((F::CAPACITY / lookup_bits) * lookup_bits)`.\ \ Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#implementations)\ \ -------------------------------------------------------------------------------------------------------------------------\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#449-475)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-RangeChip%3CF%3E)\ \ ### impl [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "struct halo2_base::gates::range::RangeChip")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#453-468)\ \ #### pub fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.new)\ (strategy: [RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html "enum halo2_base::gates::range::RangeStrategy")\ , lookup\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ ) -> Self\ \ Creates a new [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "RangeChip")\ with the given strategy and lookup\_bits.\ \ * strategy: [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "GateStrategy")\ for advice values in this chip\ * lookup\_bits: number of bits represented in the lookup table \[0,2lookup\_bits)\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#472-474)\ \ #### pub fn [default](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.default)\ (lookup\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ ) -> Self\ \ Creates a new [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "RangeChip")\ with the default strategy and provided lookup\_bits.\ \ * lookup\_bits: number of bits represented in the lookup table \[0,2lookup\_bits)\ \ Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#trait-implementations)\ \ -------------------------------------------------------------------------------------------------------------------------------------\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#432)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-Clone-for-RangeChip%3CF%3E)\ \ ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone")\ for [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "struct halo2_base::gates::range::RangeChip")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#432)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.clone)\ \ #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone)\ (&self) -> [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "struct halo2_base::gates::range::RangeChip")\ \ \ Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone)\ \ 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.clone_from)\ \ #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from)\ (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)\ \ Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from)\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#432)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-Debug-for-RangeChip%3CF%3E)\ \ ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug")\ for [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "struct halo2_base::gates::range::RangeChip")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#432)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.fmt)\ \ #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt)\ (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter")\ <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result")\ \ Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt)\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#477-646)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-RangeInstructions%3CF%3E-for-RangeChip%3CF%3E)\ \ ### impl [RangeInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html "trait halo2_base::gates::range::RangeInstructions")\ for [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "struct halo2_base::gates::range::RangeChip")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#481-483)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.gate)\ \ #### fn [gate](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#tymethod.gate)\ (&self) -> &Self::[Gate](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#associatedtype.Gate "type halo2_base::gates::range::RangeInstructions::Gate")\ \ The type of Gate used in this chip.\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#486-488)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.strategy)\ \ #### fn [strategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#tymethod.strategy)\ (&self) -> [RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html "enum halo2_base::gates::range::RangeStrategy")\ \ Returns the [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "GateStrategy")\ for this range.\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#491-493)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.lookup_bits)\ \ #### fn [lookup\_bits](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#tymethod.lookup_bits)\ (&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ \ Defines the number of bits represented in the lookup table \[0,2lookup\_bits).\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#507-552)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.range_check)\ \ #### fn [range\_check](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#tymethod.range_check)\ (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ , range\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ )\ \ Checks and constrains that `a` lies in the range \[0, 2range\_bits).\ \ This is done by decomposing `a` into `k` limbs, where `k = ceil(range_bits / lookup_bits)`. Each limb is constrained to be within the range \[0, 2lookup\_bits). The limbs are then combined to form `a` again with the last limb having `rem_bits` number of bits.\ \ * `a`: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "AssignedValue")\ value to be range checked\ * `range_bits`: number of bits in the range\ * `lookup_bits`: number of bits in the lookup table\ \ ##### [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#assumptions)\ \ * `ceil(range_bits / lookup_bits) * lookup_bits <= F::CAPACITY`\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#562-591)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.check_less_than)\ \ #### fn [check\_less\_than](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#tymethod.check_less_than)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell")\ >, \     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell")\ >, \     num\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ \ )\ \ Constrains that ‘a’ is less than ‘b’.\ \ Assumes that`a` and `b` are known to have <= num\_bits bits.\ \ Note: This may fail silently if a or b have more than num\_bits\ \ * a: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell")\ value to check\ * b: upper bound expressed as a [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell")\ \ * num\_bits: number of bits to represent the values\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#602-645)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.is_less_than)\ \ #### fn [is\_less\_than](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#tymethod.is_less_than)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell")\ >, \     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell")\ >, \     num\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ \ ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \ \ Constrains whether `a` is in `[0, b)`, and returns 1 if `a` < `b`, otherwise 0.\ \ * a: first [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell")\ to compare\ * b: second [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell")\ to compare\ * num\_bits: number of bits to represent the values\ \ ##### [Assumptions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#assumptions-1)\ \ * `a` and `b` are known to have `<= num_bits` bits.\ * (`ceil(num_bits / lookup_bits) + 1) * lookup_bits <= F::CAPACITY`\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#associatedtype.Gate)\ \ #### type [Gate](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#associatedtype.Gate)\ = [GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "struct halo2_base::gates::flex_gate::GateChip")\ \ \ The type of Gate used within the instructions.\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#225-231)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.check_less_than_safe)\ \ #### fn [check\_less\_than\_safe](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.check_less_than_safe)\ (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ , b: [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html)\ )\ \ Performs a range check that `a` has at most `bit_length(b)` bits and then constrains that `a` is less than `b`. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.check_less_than_safe)\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#237-246)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.check_big_less_than_safe)\ \ #### fn [check\_big\_less\_than\_safe](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.check_big_less_than_safe)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ , \     b: [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint")\ \ )where \     F: [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "traitalias halo2_base::utils::BigPrimeField")\ ,\ \ Performs a range check that `a` has at most `bit_length(b)` bits and then constrains that `a` is less than `b`. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.check_big_less_than_safe)\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#268-279)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.is_less_than_safe)\ \ #### fn [is\_less\_than\_safe](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.is_less_than_safe)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ , \     b: [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html)\ \ ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \ \ Performs a range check that `a` has at most `ceil(bit_length(b) / lookup_bits) * lookup_bits` and then constrains that `a` is in `[0,b)`. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.is_less_than_safe)\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#289-303)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.is_big_less_than_safe)\ \ #### fn [is\_big\_less\_than\_safe](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.is_big_less_than_safe)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ , \     b: [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint")\ \ ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ where \     F: [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "traitalias halo2_base::utils::BigPrimeField")\ ,\ \ Performs a range check that `a` has at most `ceil(b.bits() / lookup_bits) * lookup_bits` bits and then constrains that `a` is in `[0,b)`. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.is_big_less_than_safe)\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#311-338)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.div_mod)\ \ #### fn [div\_mod](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.div_mod)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell")\ >, \     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ <[BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint")\ \>, \     a\_num\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ \ ) -> ([AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ , [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ )where \     F: [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "traitalias halo2_base::utils::BigPrimeField")\ ,\ \ Constrains and returns `(c, r)` such that `a = b * c + r`. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.div_mod)\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#357-403)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.div_mod_var)\ \ #### fn [div\_mod\_var](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.div_mod_var)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell")\ >, \     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell")\ >, \     a\_num\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ , \     b\_num\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ \ ) -> ([AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ , [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ )where \     F: [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "traitalias halo2_base::utils::BigPrimeField")\ ,\ \ Constrains and returns `(c, r)` such that `a = b * c + r`. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.div_mod_var)\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#410-428)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.get_last_bit)\ \ #### fn [get\_last\_bit](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.get_last_bit)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ , \     limb\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ \ ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \ \ Constrains and returns the last bit of the value of `a`. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.get_last_bit)\ \ Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#synthetic-implementations)\ \ ----------------------------------------------------------------------------------------------------------------------------------------------\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-RefUnwindSafe-for-RangeChip%3CF%3E)\ \ ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe")\ for [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "struct halo2_base::gates::range::RangeChip")\ where \     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-Send-for-RangeChip%3CF%3E)\ \ ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send")\ for [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "struct halo2_base::gates::range::RangeChip")\ \ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-Sync-for-RangeChip%3CF%3E)\ \ ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync")\ for [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "struct halo2_base::gates::range::RangeChip")\ \ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-Unpin-for-RangeChip%3CF%3E)\ \ ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin")\ for [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "struct halo2_base::gates::range::RangeChip")\ where \     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-UnwindSafe-for-RangeChip%3CF%3E)\ \ ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe")\ for [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "struct halo2_base::gates::range::RangeChip")\ where \     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe")\ ,\ \ Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#blanket-implementations)\ \ -----------------------------------------------------------------------------------------------------------------------------------------\ \ [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-Any-for-RangeChip%3CF%3E)\ \ ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any")\ for Twhere \     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.type_id)\ \ #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id)\ (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId")\ \ Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id)\ \ [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-Borrow%3CT%3E-for-RangeChip%3CF%3E)\ \ ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow")\ for Twhere \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow")\ · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.borrow)\ \ #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow)\ (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T\ \ Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow)\ \ [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-BorrowMut%3CT%3E-for-RangeChip%3CF%3E)\ \ ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut")\ for Twhere \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow")\ · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.borrow_mut)\ \ #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut)\ (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T\ \ Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut)\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-Conv-for-RangeChip%3CF%3E)\ \ ### impl Conv for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.conv)\ \ #### fn conv(self) -> Twhere \     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ ,\ \ Converts `self` into `T` using `Into`. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-FmtForward-for-RangeChip%3CF%3E)\ \ ### impl FmtForward for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.fmt_binary)\ \ #### fn fmt\_binary(self) -> FmtBinarywhere \     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary")\ ,\ \ Causes `self` to use its `Binary` implementation when `Debug`\-formatted.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.fmt_display)\ \ #### fn fmt\_display(self) -> FmtDisplaywhere \     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display")\ ,\ \ Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.fmt_lower_exp)\ \ #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere \     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp")\ ,\ \ Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.fmt_lower_hex)\ \ #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere \     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex")\ ,\ \ Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.fmt_octal)\ \ #### fn fmt\_octal(self) -> FmtOctalwhere \     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal")\ ,\ \ Causes `self` to use its `Octal` implementation when `Debug`\-formatted.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.fmt_pointer)\ \ #### fn fmt\_pointer(self) -> FmtPointerwhere \     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer")\ ,\ \ Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.fmt_upper_exp)\ \ #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere \     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp")\ ,\ \ Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.fmt_upper_hex)\ \ #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere \     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex")\ ,\ \ Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.fmt_list)\ \ #### fn fmt\_list(self) -> FmtListwhere \     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator")\ ,\ \ Formats each item in a sequence. Read more\ \ [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-From%3CT%3E-for-RangeChip%3CF%3E)\ \ ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From")\ for T\ \ const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert")\ · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.from)\ \ #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from)\ (t: T) -> T\ \ Returns the argument unchanged.\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-Instrument-for-RangeChip%3CF%3E)\ \ ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument")\ for T\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.instrument)\ \ #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument)\ (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span")\ ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented")\ \ \ Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span")\ , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument)\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.in_current_span)\ \ #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span)\ (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented")\ \ \ Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current)\ [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html)\ , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span)\ \ [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-Into%3CU%3E-for-RangeChip%3CF%3E)\ \ ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ for Twhere \     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From")\ ,\ \ const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert")\ · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.into)\ \ #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into)\ (self) -> U\ \ Calls `U::from(self)`.\ \ That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-Pipe-for-RangeChip%3CF%3E)\ \ ### impl Pipe for Twhere \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.pipe)\ \ #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ (Self) -> R) -> Rwhere \     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Pipes by value. This is generally the method you want to use. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.pipe_ref)\ \ #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self) -> R) -> Rwhere \     R: 'a,\ \ Borrows `self` and passes that borrow into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.pipe_ref_mut)\ \ #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self) -> R) -> Rwhere \     R: 'a,\ \ Mutably borrows `self` and passes that borrow into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.pipe_borrow)\ \ #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B) -> R) -> Rwhere \     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow")\ , \     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Borrows `self`, then passes `self.borrow()` into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.pipe_borrow_mut)\ \ #### fn pipe\_borrow\_mut<'a, B, R>( \     &'a mut self, \     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B) -> R \ ) -> Rwhere \     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut")\ , \     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.pipe_as_ref)\ \ #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ U) -> R) -> Rwhere \     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef")\ , \     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Borrows `self`, then passes `self.as_ref()` into the pipe function.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.pipe_as_mut)\ \ #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ U) -> R) -> Rwhere \     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut")\ , \     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.pipe_deref)\ \ #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T) -> R) -> Rwhere \     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Borrows `self`, then passes `self.deref()` into the pipe function.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.pipe_deref_mut)\ \ #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T) -> R) -> Rwhere \     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut")\ + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-Pointable-for-RangeChip%3CF%3E)\ \ ### impl Pointable for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#associatedconstant.ALIGN)\ \ #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ = mem::align\_of::()\ \ The alignment of pointer.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#associatedtype.Init)\ \ #### type Init = T\ \ The type for initializers.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.init)\ \ #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ \ Initializes a with the given initializer. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.deref)\ \ #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T\ \ Dereferences the given pointer. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.deref_mut)\ \ #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T\ \ Mutably dereferences the given pointer. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.drop)\ \ #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ )\ \ Drops the object pointed to by the given pointer. Read more\ \ [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-Same%3CT%3E-for-RangeChip%3CF%3E)\ \ ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same")\ for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#associatedtype.Output)\ \ #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output)\ = T\ \ Should always be `Self`\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-Tap-for-RangeChip%3CF%3E)\ \ ### impl Tap for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.tap)\ \ #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)) -> Self\ \ Immutable access to a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.tap_mut)\ \ #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)) -> Self\ \ Mutable access to a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.tap_borrow)\ \ #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B)) -> Selfwhere \     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow")\ , \     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Immutable access to the `Borrow` of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.tap_borrow_mut)\ \ #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B)) -> Selfwhere \     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut")\ , \     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Mutable access to the `BorrowMut` of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.tap_ref)\ \ #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ R)) -> Selfwhere \     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef")\ , \     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Immutable access to the `AsRef` view of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.tap_ref_mut)\ \ #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ R)) -> Selfwhere \     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut")\ , \     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Mutable access to the `AsMut` view of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.tap_deref)\ \ #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)) -> Selfwhere \     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Immutable access to the `Deref::Target` of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.tap_deref_mut)\ \ #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)) -> Selfwhere \     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut")\ + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Mutable access to the `Deref::Target` of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.tap_dbg)\ \ #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)) -> Self\ \ Calls `.tap()` only in debug builds, and is erased in release builds.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.tap_mut_dbg)\ \ #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)) -> Self\ \ Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.tap_borrow_dbg)\ \ #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B)) -> Selfwhere \     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow")\ , \     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.tap_borrow_mut_dbg)\ \ #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B)) -> Selfwhere \     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut")\ , \     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.tap_ref_dbg)\ \ #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ R)) -> Selfwhere \     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef")\ , \     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.tap_ref_mut_dbg)\ \ #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ R)) -> Selfwhere \     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut")\ , \     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.tap_deref_dbg)\ \ #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)) -> Selfwhere \     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.tap_deref_mut_dbg)\ \ #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)) -> Selfwhere \     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut")\ + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more\ \ [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-ToOwned-for-RangeChip%3CF%3E)\ \ ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned")\ for Twhere \     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#associatedtype.Owned)\ \ #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned)\ = T\ \ The resulting type after obtaining ownership.\ \ [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.to_owned)\ \ #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned)\ (&self) -> T\ \ Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned)\ \ [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.clone_into)\ \ #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into)\ (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)\ \ Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into)\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-TryConv-for-RangeChip%3CF%3E)\ \ ### impl TryConv for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.try_conv)\ \ #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result")\ where \     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto")\ ,\ \ Attempts to convert `self` into `T` using `TryInto`. Read more\ \ [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-TryFrom%3CU%3E-for-RangeChip%3CF%3E)\ \ ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom")\ for Twhere \     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#associatedtype.Error-1)\ \ #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error)\ = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible")\ \ The type returned in the event of a conversion error.\ \ const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert")\ · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.try_from)\ \ #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from)\ (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result")\ >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error")\ \>\ \ Performs the conversion.\ \ [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-TryInto%3CU%3E-for-RangeChip%3CF%3E)\ \ ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto")\ for Twhere \     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#associatedtype.Error)\ \ #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error)\ = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error")\ \ The type returned in the event of a conversion error.\ \ const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert")\ · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.try_into)\ \ #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into)\ (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result")\ >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error")\ \>\ \ Performs the conversion.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-VZip%3CV%3E-for-RangeChip%3CF%3E)\ \ ### impl VZip for Twhere \     V: MultiLane,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.vzip)\ \ #### fn vzip(self) -> V\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#impl-WithSubscriber-for-RangeChip%3CF%3E)\ \ ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber")\ for T\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.with_subscriber)\ \ #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber)\ (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch")\ where \     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ ,\ \ Attaches the provided [`Subscriber`](super::Subscriber)\ to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch")\ wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber)\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html#method.with_current_subscriber)\ \ #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber)\ (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch")\ \ \ Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber)\ [`Subscriber`](super::Subscriber)\ to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch")\ wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # CurveAffineExt in halo2_base::utils - Rust Trait [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[CurveAffineExt](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.CurveAffineExt.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ====================================================================================================================================================================================================================================================================================================================================================== [\[−\]](javascript:void(0) "collapse all docs") pub trait CurveAffineExt: CurveAffine { fn batch_add(        points: &mut [Self],        output_indices: &[u32],        num_points: usize,        offset: usize,        bases: &[Self],        base_positions: &[u32]    ); fn into_coordinates(self) -> (Self::Base, Self::Base) { ... } } Required Methods[](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.CurveAffineExt.html#required-methods) ------------------------------------------------------------------------------------------------------------------------- #### fn [batch\_add](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.CurveAffineExt.html#tymethod.batch_add) (     points: &mut [\[Self\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) ,     output\_indices: &\[[u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html)\ \],     num\_points: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ,     offset: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ,     bases: &[\[Self\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) ,     base\_positions: &\[[u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html)\ \] ) Provided Methods[](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.CurveAffineExt.html#provided-methods) ------------------------------------------------------------------------------------------------------------------------- #### fn [into\_coordinates](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.CurveAffineExt.html#method.into_coordinates) (self) -> (Self::Base, Self::Base) Unlike the `Coordinates` trait, this just returns the raw affine coordinates without checking `is_on_curve` Implementors[](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.CurveAffineExt.html#implementors) ----------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.CurveAffineExt.html#impl-CurveAffineExt-for-G1Affine) ### impl [CurveAffineExt](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.CurveAffineExt.html "trait halo2_base::utils::CurveAffineExt") for G1Affine [](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.CurveAffineExt.html#impl-CurveAffineExt-for-G2Affine) ### impl [CurveAffineExt](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.CurveAffineExt.html "trait halo2_base::utils::CurveAffineExt") for G2Affine [](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.CurveAffineExt.html#impl-CurveAffineExt-for-Secp256k1Affine) ### impl [CurveAffineExt](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.CurveAffineExt.html "trait halo2_base::utils::CurveAffineExt") for Secp256k1Affine --- # bigint_to_fe in halo2_base::utils - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[bigint\_to\_fe](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.bigint_to_fe.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ==================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#131-139) · [\[−\]](javascript:void(0) "collapse all docs") pub fn bigint_to_fe(e: &BigInt) -> F Expand description Converts an immutable reference to [BigInt](https://docs.rs/num-bigint/0.4/num_bigint/bigint/struct.BigInt.html "BigInt") to a [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField") . * `e`: immutable reference to [BigInt](https://docs.rs/num-bigint/0.4/num_bigint/bigint/struct.BigInt.html "BigInt") [Assumptions:](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.bigint_to_fe.html#assumptions) ----------------------------------------------------------------------------------------------------------- * The absolute value of `e` is less than the modulus of `F` --- # SafeBool in halo2_base::safe_types - Rust Type Definition [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[safe\_types](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/index.html) ::[SafeBool](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeBool.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#67) · [\[−\]](javascript:void(0) "collapse all docs") pub type SafeBool = SafeType; Expand description SafeType for bool. --- # RangeInstructions in halo2_base::gates::range - Rust Trait [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[range](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/index.html) ::[RangeInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#185-429) · [\[−\]](javascript:void(0) "collapse all docs") pub trait RangeInstructions { type Gate: GateInstructions; Show 13 methods fn gate(&self) -> &Self::Gate; fn strategy(&self) -> RangeStrategy; fn lookup_bits(&self) -> usize; fn range_check(        &self,        ctx: &mut Context,        a: AssignedValue,        range_bits: usize    ); fn check_less_than(        &self,        ctx: &mut Context,        a: impl Into>,        b: impl Into>,        num_bits: usize    ); fn is_less_than(        &self,        ctx: &mut Context,        a: impl Into>,        b: impl Into>,        num_bits: usize    ) -> AssignedValue; fn check_less_than_safe(        &self,        ctx: &mut Context,        a: AssignedValue,        b: u64    ) { ... } fn check_big_less_than_safe(        &self,        ctx: &mut Context,        a: AssignedValue,        b: BigUint    )    where        F: BigPrimeField, { ... } fn is_less_than_safe(        &self,        ctx: &mut Context,        a: AssignedValue,        b: u64    ) -> AssignedValue { ... } fn is_big_less_than_safe(        &self,        ctx: &mut Context,        a: AssignedValue,        b: BigUint    ) -> AssignedValue    where        F: BigPrimeField, { ... } fn div_mod(        &self,        ctx: &mut Context,        a: impl Into>,        b: impl Into,        a_num_bits: usize    ) -> (AssignedValue, AssignedValue)    where        F: BigPrimeField, { ... } fn div_mod_var(        &self,        ctx: &mut Context,        a: impl Into>,        b: impl Into>,        a_num_bits: usize,        b_num_bits: usize    ) -> (AssignedValue, AssignedValue)    where        F: BigPrimeField, { ... } fn get_last_bit(        &self,        ctx: &mut Context,        a: AssignedValue,        limb_bits: usize    ) -> AssignedValue { ... } } Expand description Trait that implements methods to constrain a field element number `x` is within a range of bits. Required Associated Types[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#required-associated-types) ---------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#187) #### type [Gate](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#associatedtype.Gate) : [GateInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html "trait halo2_base::gates::flex_gate::GateInstructions") The type of Gate used within the instructions. Required Methods[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#required-methods) ---------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#190) #### fn [gate](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#tymethod.gate) (&self) -> &Self::[Gate](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#associatedtype.Gate "type halo2_base::gates::range::RangeInstructions::Gate") Returns the type of gate used. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#193) #### fn [strategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#tymethod.strategy) (&self) -> [RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html "enum halo2_base::gates::range::RangeStrategy") Returns the [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "GateStrategy") for this range. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#196) #### fn [lookup\_bits](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#tymethod.lookup_bits) (&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Returns the number of bits the lookup table represents. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#203) #### fn [range\_check](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#tymethod.range_check) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") , range\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Checks and constrains that `a` lies in the range \[0, 2range\_bits).\ \ Assumes that both `a`<= `range_bits` bits.\ \ * a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "AssignedValue")\ value to be range checked\ * range\_bits: number of bits to represent the range\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#213-219)\ \ #### fn [check\_less\_than](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#tymethod.check_less_than)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell")\ >, \     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell")\ >, \     num\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ \ )\ \ Constrains that ‘a’ is less than ‘b’.\ \ Assumes that `a` and `b` have bit length <= num\_bits bits.\ \ Note: This may fail silently if a or b have more than num\_bits.\ \ * a: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell")\ value to check\ * b: upper bound expressed as a [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell")\ \ * num\_bits: number of bits used to represent the values of `a` and `b`\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#254-260)\ \ #### fn [is\_less\_than](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#tymethod.is_less_than)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell")\ >, \     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell")\ >, \     num\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ \ ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \ \ Constrains whether `a` is in `[0, b)`, and returns 1 if `a` < `b`, otherwise 0.\ \ Assumes that`a` and `b` are known to have <= num\_bits bits.\ \ * a: first [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell")\ to compare\ * b: second [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell")\ to compare\ * num\_bits: number of bits to represent the values\ \ Provided Methods[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#provided-methods)\ \ ----------------------------------------------------------------------------------------------------------------------------------\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#225-231)\ \ #### fn [check\_less\_than\_safe](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.check_less_than_safe)\ (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ , b: [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html)\ )\ \ Performs a range check that `a` has at most `bit_length(b)` bits and then constrains that `a` is less than `b`.\ \ * a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "AssignedValue")\ value to check\ * b: upper bound expressed as a [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html "u64")\ value\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#237-246)\ \ #### fn [check\_big\_less\_than\_safe](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.check_big_less_than_safe)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ , \     b: [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint")\ \ )where \     F: [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "traitalias halo2_base::utils::BigPrimeField")\ ,\ \ Performs a range check that `a` has at most `bit_length(b)` bits and then constrains that `a` is less than `b`.\ \ * a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "AssignedValue")\ value to check\ * b: upper bound expressed as a [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "BigUint")\ value\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#268-279)\ \ #### fn [is\_less\_than\_safe](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.is_less_than_safe)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ , \     b: [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html)\ \ ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \ \ Performs a range check that `a` has at most `ceil(bit_length(b) / lookup_bits) * lookup_bits` and then constrains that `a` is in `[0,b)`.\ \ Returns 1 if `a` < `b`, otherwise 0.\ \ * a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "AssignedValue")\ value to check\ * b: upper bound as [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html "u64")\ value\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#289-303)\ \ #### fn [is\_big\_less\_than\_safe](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.is_big_less_than_safe)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ , \     b: [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint")\ \ ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ where \     F: [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "traitalias halo2_base::utils::BigPrimeField")\ ,\ \ Performs a range check that `a` has at most `ceil(b.bits() / lookup_bits) * lookup_bits` bits and then constrains that `a` is in `[0,b)`.\ \ Returns 1 if `a` < `b`, otherwise 0.\ \ * a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "AssignedValue")\ value to check\ * b: upper bound as [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "BigUint")\ value\ \ For the current implementation using \[`is_less_than`\], we require `ceil(b.bits() / lookup_bits) + 1 < F::NUM_BITS / lookup_bits`\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#311-338)\ \ #### fn [div\_mod](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.div_mod)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell")\ >, \     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ <[BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "struct num_bigint::biguint::BigUint")\ \>, \     a\_num\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ \ ) -> ([AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ , [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ )where \     F: [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "traitalias halo2_base::utils::BigPrimeField")\ ,\ \ Constrains and returns `(c, r)` such that `a = b * c + r`.\ \ Assumes that `b != 0` and that `a` has <= `a_num_bits` bits.\ \ * a: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell")\ value to divide\ * b: [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "BigUint")\ value to divide by\ * a\_num\_bits: number of bits needed to represent the value of `a`\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#357-403)\ \ #### fn [div\_mod\_var](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.div_mod_var)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell")\ >, \     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell")\ >, \     a\_num\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ , \     b\_num\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ \ ) -> ([AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ , [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ )where \     F: [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "traitalias halo2_base::utils::BigPrimeField")\ ,\ \ Constrains and returns `(c, r)` such that `a = b * c + r`.\ \ Assumes: that `b != 0`. that `a` has <= `a_num_bits` bits. that `b` has <= `b_num_bits` bits.\ \ Note: Let `X = 2 ** b_num_bits` Write `a = a1 * X + a0` and `c = c1 * X + c0` If we write `b * c0 + r = d1 * X + d0` then `b * c + r = (b * c1 + d1) * X + d0`\ \ * a: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell")\ value to divide\ * b: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell")\ value to divide by\ * a\_num\_bits: number of bits needed to represent the value of `a`\ * b\_num\_bits: number of bits needed to represent the value of `b`\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#410-428)\ \ #### fn [get\_last\_bit](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#method.get_last_bit)\ ( \     &self, \     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context")\ , \     a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ , \     limb\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ \ ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \ \ Constrains and returns the last bit of the value of `a`.\ \ Assume `a` has been range checked already to `limb_bits` bits.\ \ * a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "AssignedValue")\ value to get the last bit of\ * limb\_bits: number of bits in a limb\ \ Implementors[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#implementors)\ \ --------------------------------------------------------------------------------------------------------------------------\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#477-646)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#impl-RangeInstructions%3CF%3E-for-RangeChip%3CF%3E)\ \ ### impl [RangeInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html "trait halo2_base::gates::range::RangeInstructions")\ for [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "struct halo2_base::gates::range::RangeChip")\ \ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#associatedtype.Gate-1)\ \ #### type [Gate](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html#associatedtype.Gate)\ = [GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "struct halo2_base::gates::flex_gate::GateChip")\ --- # SafeType in halo2_base::safe_types - Rust Struct [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[safe\_types](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/index.html) ::[SafeType](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#30-33) · [\[−\]](javascript:void(0) "collapse all docs") pub struct SafeType { /* private fields */ } Expand description SafeType’s goal is to avoid out-of-range undefined behavior. When building circuits, it’s common to use mulitple AssignedValue to represent a logical varaible. For example, we might want to represent a hash with 32 AssignedValue where each AssignedValue represents 1 byte. However, the range of AssignedValue is much larger than 1 byte(0~255). If a circuit takes 32 AssignedValue as inputs and some of them are actually greater than 255, there could be some undefined behaviors. SafeType gurantees the value range of its owned AssignedValue. So circuits don’t need to do any extra value checking if they take SafeType as inputs. TOTAL\_BITS is the number of total bits of this type. BYTES\_PER\_ELE is the number of bytes of each element. Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#implementations) ----------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#35-58) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl [SafeType](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html "struct halo2_base::safe_types::SafeType") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#39) #### pub const [BYTES\_PER\_ELE](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#associatedconstant.BYTES_PER_ELE) : [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = BYTES\_PER\_ELE Number of bytes of each element. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#41) #### pub const [TOTAL\_BITS](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#associatedconstant.TOTAL_BITS) : [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = TOTAL\_BITS Total bits of this type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#43) #### pub const [BITS\_PER\_ELE](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#associatedconstant.BITS_PER_ELE) : [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = \_ Number of bits of each element. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#45-46) #### pub const [VALUE\_LENGTH](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#associatedconstant.VALUE_LENGTH) : [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = \_ Number of elements of this type. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#55-57) #### pub fn [value](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.value) (&self) -> &[Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") > Return values in littile-endian. Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#trait-implementations) ----------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#29) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-Clone-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [SafeType](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html "struct halo2_base::safe_types::SafeType") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#29) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [SafeType](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html "struct halo2_base::safe_types::SafeType") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#29) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-Debug-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [SafeType](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html "struct halo2_base::safe_types::SafeType") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#29) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#synthetic-implementations) -------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-RefUnwindSafe-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [SafeType](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html "struct halo2_base::safe_types::SafeType") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-Send-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [SafeType](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html "struct halo2_base::safe_types::SafeType") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-Sync-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [SafeType](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html "struct halo2_base::safe_types::SafeType") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-Unpin-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [SafeType](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html "struct halo2_base::safe_types::SafeType") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-UnwindSafe-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [SafeType](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html "struct halo2_base::safe_types::SafeType") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#blanket-implementations) --------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-Any-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-Borrow%3CT%3E-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-BorrowMut%3CT%3E-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-Conv-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-FmtForward-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-From%3CT%3E-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-Instrument-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-Into%3CU%3E-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-Pipe-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-Pointable-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-Same%3CT%3E-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-Tap-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-ToOwned-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-TryConv-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-TryFrom%3CU%3E-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-TryInto%3CU%3E-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-VZip%3CV%3E-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#impl-WithSubscriber-for-SafeType%3CF%2C%20BYTES_PER_ELE%2C%20TOTAL_BITS%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # SafeBytes32 in halo2_base::safe_types - Rust Type Definition [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[safe\_types](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/index.html) ::[SafeBytes32](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeBytes32.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#81) · [\[−\]](javascript:void(0) "collapse all docs") pub type SafeBytes32 = SafeType; Expand description SafeType for bytes32. --- # biguint_to_fe in halo2_base::utils - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[biguint\_to\_fe](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.biguint_to_fe.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ====================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#121-124) · [\[−\]](javascript:void(0) "collapse all docs") pub fn biguint_to_fe(e: &BigUint) -> F Expand description Converts an immutable reference to [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "BigUint") to a [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField") . * `e`: immutable reference to [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "BigUint") [Assumptions:](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.biguint_to_fe.html#assumptions) ------------------------------------------------------------------------------------------------------------ * `e` is less than the modulus of `F` --- # bit_length in halo2_base::utils - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[bit\_length](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.bit_length.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =============================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#94-96) · [\[−\]](javascript:void(0) "collapse all docs") pub fn bit_length(x: u64) -> usize Expand description Returns the number of bits needed to represent the value of `x`. --- # compose in halo2_base::utils - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[compose](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.compose.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#289-291) · [\[−\]](javascript:void(0) "collapse all docs") pub fn compose(input: Vec, bit_len: usize) -> BigUint Expand description Computes the value of an integer by passing as `input` a [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") of its limb values and the `bit_len` (bit length) used. Returns the sum of all limbs scaled by 2(bit\_len \* i) where i is the index of the limb. * `input`: Limb values of the integer. * `bit_len`: Length of limb in bits --- # SafeUint8 in halo2_base::safe_types - Rust Type Definition [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[safe\_types](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/index.html) ::[SafeUint8](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeUint8.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ===================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#69) · [\[−\]](javascript:void(0) "collapse all docs") pub type SafeUint8 = SafeType; Expand description SafeType for uint8. --- # SafeUint16 in halo2_base::safe_types - Rust Type Definition [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[safe\_types](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/index.html) ::[SafeUint16](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeUint16.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#71) · [\[−\]](javascript:void(0) "collapse all docs") pub type SafeUint16 = SafeType; Expand description SafeType for uint16. --- # SafeUint32 in halo2_base::safe_types - Rust Type Definition [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[safe\_types](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/index.html) ::[SafeUint32](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeUint32.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#73) · [\[−\]](javascript:void(0) "collapse all docs") pub type SafeUint32 = SafeType; Expand description SafeType for uint32. --- # decompose in halo2_base::utils - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[decompose](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.decompose.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#169-175) · [\[−\]](javascript:void(0) "collapse all docs") pub fn decompose(    e: &F,    number_of_limbs: usize,    bit_len: usize) -> Vec Expand description Decomposes an immutable reference to a [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField") element into `number_of_limbs` limbs of `bit_len` bits each and returns a [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") of [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField") represented by those limbs. Assumes `bit_len < 128`. * `e`: immutable reference to [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField") element to decompose * `number_of_limbs`: number of limbs to decompose `e` into * `bit_len`: number of bits in each limb --- # SafeUint64 in halo2_base::safe_types - Rust Type Definition [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[safe\_types](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/index.html) ::[SafeUint64](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeUint64.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#75) · [\[−\]](javascript:void(0) "collapse all docs") pub type SafeUint64 = SafeType; Expand description SafeType for uint64. --- # decompose_bigint in halo2_base::utils - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[decompose\_bigint](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.decompose_bigint.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =========================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#251-257) · [\[−\]](javascript:void(0) "collapse all docs") pub fn decompose_bigint(    e: &BigInt,    num_limbs: usize,    bit_len: usize) -> Vec Expand description Decomposes an immutable reference to a [BigInt](https://docs.rs/num-bigint/0.4/num_bigint/bigint/struct.BigInt.html "BigInt") into `num_limbs` limbs of `bit_len` bits each and returns a [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") of [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField") represented by those limbs. Assumes `bit_len < 128`. * `e`: immutable reference to `BigInt` to decompose * `num_limbs`: number of limbs to decompose `e` into * `bit_len`: number of bits in each limb --- # SafeTypeChip in halo2_base::safe_types - Rust Struct [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[safe\_types](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/index.html) ::[SafeTypeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ==================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#84-86) · [\[−\]](javascript:void(0) "collapse all docs") pub struct SafeTypeChip<'a, F: ScalarField> { /* private fields */ } Expand description Chip for SafeType Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#implementations) --------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#88-146) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-SafeTypeChip%3C%27a%2C%20F%3E) ### impl<'a, F: [ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html "trait halo2_base::utils::ScalarField") \> [SafeTypeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html "struct halo2_base::safe_types::SafeTypeChip") <'a, F> [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#90-92) #### pub fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.new) (range\_chip: &'a [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "struct halo2_base::gates::range::RangeChip") ) -> Self Construct a SafeTypeChip. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#97-128) #### pub fn [raw\_bytes\_to](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.raw_bytes_to) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     inputs: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") > ) -> [SafeType](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeType.html "struct halo2_base::safe_types::SafeType") Convert a vector of AssignedValue(treated as little-endian) to a SafeType. The number of bytes of inputs must equal to the number of bytes of outputs. This function also add contraints that a AssignedValue in inputs must be in the range of a byte. Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#synthetic-implementations) ------------------------------------------------------------------------------------------------------------------------------------------------ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-RefUnwindSafe-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl<'a, F> [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [SafeTypeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html "struct halo2_base::safe_types::SafeTypeChip") <'a, F>where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-Send-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl<'a, F> [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [SafeTypeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html "struct halo2_base::safe_types::SafeTypeChip") <'a, F> [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-Sync-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl<'a, F> [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [SafeTypeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html "struct halo2_base::safe_types::SafeTypeChip") <'a, F> [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-Unpin-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl<'a, F> [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [SafeTypeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html "struct halo2_base::safe_types::SafeTypeChip") <'a, F> [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-UnwindSafe-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl<'a, F> [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [SafeTypeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html "struct halo2_base::safe_types::SafeTypeChip") <'a, F>where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#blanket-implementations) ------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-Any-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-Borrow%3CT%3E-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-BorrowMut%3CT%3E-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-Conv-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-FmtForward-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-From%3CT%3E-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-Instrument-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-Into%3CU%3E-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-Pipe-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-Pointable-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-Same%3CT%3E-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-Tap-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-TryConv-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-TryFrom%3CU%3E-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-TryInto%3CU%3E-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-VZip%3CV%3E-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#impl-WithSubscriber-for-SafeTypeChip%3C%27a%2C%20F%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/struct.SafeTypeChip.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # SafeUint128 in halo2_base::safe_types - Rust Type Definition [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[safe\_types](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/index.html) ::[SafeUint128](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeUint128.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#77) · [\[−\]](javascript:void(0) "collapse all docs") pub type SafeUint128 = SafeType; Expand description SafeType for uint128. --- # decompose_bigint_option in halo2_base::utils - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[decompose\_bigint\_option](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.decompose_bigint_option.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#265-271) · [\[−\]](javascript:void(0) "collapse all docs") pub fn decompose_bigint_option(    value: Value<&BigInt>,    number_of_limbs: usize,    bit_len: usize) -> Vec> Expand description Decomposes an immutable reference to a [BigInt](https://docs.rs/num-bigint/0.4/num_bigint/bigint/struct.BigInt.html "BigInt") into `num_limbs` limbs of `bit_len` bits each and returns a [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") of [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField") represented by those limbs wrapped in \[Value\]. Assumes `bit_len` < 128. * `e`: immutable reference to `BigInt` to decompose * `num_limbs`: number of limbs to decompose `e` into * `bit_len`: number of bits in each limb --- # SafeUint256 in halo2_base::safe_types - Rust Type Definition [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[safe\_types](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/index.html) ::[SafeUint256](https://axiom-crypto.github.io/halo2-lib/halo2_base/safe_types/type.SafeUint256.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/safe_types/mod.rs.html#79) · [\[−\]](javascript:void(0) "collapse all docs") pub type SafeUint256 = SafeType; Expand description SafeType for uint256. --- # decompose_biguint in halo2_base::utils - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[decompose\_biguint](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.decompose_biguint.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#207-243) · [\[−\]](javascript:void(0) "collapse all docs") pub fn decompose_biguint(    e: &BigUint,    num_limbs: usize,    bit_len: usize) -> Vec Expand description Decomposes an immutable reference to a [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "BigUint") into `num_limbs` limbs of `bit_len` bits each and returns a [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") of [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField") represented by those limbs. Assumes 64 <= `bit_len` < 128. * `e`: immutable reference to [BigInt](https://docs.rs/num-bigint/0.4/num_bigint/bigint/struct.BigInt.html "BigInt") to decompose * `num_limbs`: number of limbs to decompose `e` into * `bit_len`: number of bits in each limb Truncates to `num_limbs` limbs if `e` is too large. --- # List of all items in this crate List of all items ================= ### Structs * [keccak\_packed\_multi::KeccakCircuitConfig](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakCircuitConfig.html) * [keccak\_packed\_multi::KeccakRow](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html) * [keccak\_packed\_multi::KeccakTable](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html) * [util::PartInfo](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html) * [util::WordParts](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html) * [util::constraint\_builder::BaseConstraintBuilder](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html) * [util::eth\_types::AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html) * [util::eth\_types::Block](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Block.html) * [util::eth\_types::Bytes](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Bytes.html) * [util::eth\_types::H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html) * [util::eth\_types::H256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H256.html) * [util::eth\_types::H64](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H64.html) * [util::eth\_types::Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html) * [util::eth\_types::Transaction](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Transaction.html) * [util::eth\_types::U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html) * [util::eth\_types::U64](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U64.html) ### Traits * [util::eth\_types::Field](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.Field.html) * [util::eth\_types::ToAddress](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToAddress.html) * [util::eth\_types::ToBigEndian](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToBigEndian.html) * [util::eth\_types::ToLittleEndian](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToLittleEndian.html) * [util::eth\_types::ToScalar](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToScalar.html) * [util::eth\_types::ToWord](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToWord.html) * [util::expression::Expr](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/expression/trait.Expr.html) ### Macros * [address](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/macro.address.html) * [impl\_expr](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/macro.impl_expr.html) * [word](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/macro.word.html) * [word\_map](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/macro.word_map.html) ### Functions * [keccak\_packed\_multi::assign\_advice\_custom](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.assign_advice_custom.html) * [keccak\_packed\_multi::assign\_fixed\_custom](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.assign_fixed_custom.html) * [keccak\_packed\_multi::get\_keccak\_capacity](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.get_keccak_capacity.html) * [keccak\_packed\_multi::get\_num\_keccak\_f](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.get_num_keccak_f.html) * [keccak\_packed\_multi::get\_num\_rows\_per\_round](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.get_num_rows_per_round.html) * [keccak\_packed\_multi::keccak\_phase0](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.keccak_phase0.html) * [keccak\_packed\_multi::keccak\_phase1](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.keccak_phase1.html) * [keccak\_packed\_multi::multi\_keccak\_phase0](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.multi_keccak_phase0.html) * [keccak\_packed\_multi::multi\_keccak\_phase1](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.multi_keccak_phase1.html) * [util::expression::and::expr](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/expression/and/fn.expr.html) * [util::expression::and::value](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/expression/and/fn.value.html) * [util::expression::expr\_from\_bytes](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/expression/fn.expr_from_bytes.html) * [util::expression::not::expr](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/expression/not/fn.expr.html) * [util::expression::not::value](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/expression/not/fn.value.html) * [util::expression::or::expr](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/expression/or/fn.expr.html) * [util::expression::or::value](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/expression/or/fn.value.html) * [util::expression::pow\_of\_two](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/expression/fn.pow_of_two.html) * [util::expression::select::expr](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/expression/select/fn.expr.html) * [util::expression::select::value](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/expression/select/fn.value.html) * [util::expression::select::value\_word](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/expression/select/fn.value_word.html) * [util::expression::sum::expr](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/expression/sum/fn.expr.html) * [util::expression::sum::value](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/expression/sum/fn.value.html) * [util::expression::xor::expr](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/expression/xor/fn.expr.html) * [util::expression::xor::value](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/expression/xor/fn.value.html) * [util::field\_xor](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.field_xor.html) * [util::get\_absorb\_positions](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.get_absorb_positions.html) * [util::get\_degree](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.get_degree.html) * [util::get\_num\_bits\_per\_lookup](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.get_num_bits_per_lookup.html) * [util::get\_rotate\_count](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.get_rotate_count.html) * [util::into\_bits](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.into_bits.html) * [util::pack](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.pack.html) * [util::pack\_part](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.pack_part.html) * [util::pack\_u64](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.pack_u64.html) * [util::pack\_with\_base](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.pack_with_base.html) * [util::rotate](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.rotate.html) * [util::rotate\_left](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.rotate_left.html) * [util::rotate\_rev](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.rotate_rev.html) * [util::target\_part\_sizes](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.target_part_sizes.html) * [util::unpack](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/fn.unpack.html) ### Type Definitions * [util::eth\_types::Address](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Address.html) * [util::eth\_types::Hash](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Hash.html) * [util::eth\_types::Word](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Word.html) ### Constants * [util::ABSORB\_WIDTH\_PER\_ROW](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.ABSORB_WIDTH_PER_ROW.html) * [util::ABSORB\_WIDTH\_PER\_ROW\_BYTES](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.ABSORB_WIDTH_PER_ROW_BYTES.html) * [util::BIT\_COUNT](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.BIT_COUNT.html) * [util::BIT\_SIZE](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.BIT_SIZE.html) * [util::KECCAK\_WIDTH](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.KECCAK_WIDTH.html) * [util::KECCAK\_WIDTH\_IN\_BITS](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.KECCAK_WIDTH_IN_BITS.html) * [util::NUM\_BITS\_PER\_BYTE](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.NUM_BITS_PER_BYTE.html) * [util::NUM\_BITS\_PER\_WORD](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.NUM_BITS_PER_WORD.html) * [util::NUM\_BYTES\_PER\_WORD](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.NUM_BYTES_PER_WORD.html) * [util::NUM\_BYTES\_TO\_ABSORB](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.NUM_BYTES_TO_ABSORB.html) * [util::NUM\_BYTES\_TO\_SQUEEZE](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.NUM_BYTES_TO_SQUEEZE.html) * [util::NUM\_ROUNDS](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.NUM_ROUNDS.html) * [util::NUM\_WORDS\_TO\_ABSORB](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.NUM_WORDS_TO_ABSORB.html) * [util::NUM\_WORDS\_TO\_SQUEEZE](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.NUM_WORDS_TO_SQUEEZE.html) * [util::RATE](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.RATE.html) * [util::RATE\_IN\_BITS](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.RATE_IN_BITS.html) --- # fe_to_bigint in halo2_base::utils - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[fe\_to\_bigint](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.fe_to_bigint.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ==================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#152-161) · [\[−\]](javascript:void(0) "collapse all docs") pub fn fe_to_bigint(fe: &F) -> BigInt Expand description Converts a [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField") element into a [BigInt](https://docs.rs/num-bigint/0.4/num_bigint/bigint/struct.BigInt.html "BigInt") element by sending `fe` in `[0, F::modulus())` to\ \ ⓘ\ \ fe, if fe < F::modulus() / 2\ fe - F::modulus(), otherwise --- # decompose_fe_to_u64_limbs in halo2_base::utils - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[decompose\_fe\_to\_u64\_limbs](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.decompose_fe_to_u64_limbs.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#183-197) · [\[−\]](javascript:void(0) "collapse all docs") pub fn decompose_fe_to_u64_limbs(    e: &F,    number_of_limbs: usize,    bit_len: usize) -> Vec Expand description Decomposes an immutable reference to a [ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html "ScalarField") element into `number_of_limbs` limbs of `bit_len` bits each and returns a [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") of [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html "u64") represented by those limbs. Assumes `bit_len` < 64 * `e`: immutable reference to [ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html "ScalarField") element to decompose * `number_of_limbs`: number of limbs to decompose `e` into * `bit_len`: number of bits in each limb --- # log2_ceil in halo2_base::utils - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[log2\_ceil](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.log2_ceil.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#101-103) · [\[−\]](javascript:void(0) "collapse all docs") pub fn log2_ceil(x: u64) -> usize Expand description Returns the ceiling of the base 2 logarithm of `x`. `log2_ceil(0)` returns 0. --- # fe_to_biguint in halo2_base::utils - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[fe\_to\_biguint](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.fe_to_biguint.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ====================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#143-145) · [\[−\]](javascript:void(0) "collapse all docs") pub fn fe_to_biguint(fe: &F) -> BigUint Expand description Converts an immutable reference to an PrimeField element into a [BigUint](https://docs.rs/num-bigint/0.4/num_bigint/biguint/struct.BigUint.html "BigUint") element. * `fe`: immutable reference to PrimeField element to convert --- # modulus in halo2_base::utils - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[modulus](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.modulus.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#106-108) · [\[−\]](javascript:void(0) "collapse all docs") pub fn modulus() -> BigUint Expand description Returns the modulus of [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField") . --- # power_of_two in halo2_base::utils - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[power\_of\_two](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.power_of_two.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ==================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#112-114) · [\[−\]](javascript:void(0) "collapse all docs") pub fn power_of_two(n: usize) -> F Expand description Returns the [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "BigPrimeField") element of 2n. * `n`: the desired power of 2. --- # value_to_option in halo2_base::utils - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[value\_to\_option](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fn.value_to_option.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#276-282) · [\[−\]](javascript:void(0) "collapse all docs") pub fn value_to_option(value: Value) -> Option Expand description Wraps the internal value of `value` in an [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "Option") . If the value is [None](https://doc.rust-lang.org/nightly/core/option/enum.Option.html#variant.None "None") , then the function returns [None](https://doc.rust-lang.org/nightly/core/option/enum.Option.html#variant.None "None") . * `value`: Value to convert. --- # FlexGateConfigParams in halo2_base::gates::builder - Rust Struct [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[builder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/index.html) ::[FlexGateConfigParams](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ====================================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#450-461) · [\[−\]](javascript:void(0) "collapse all docs") pub struct FlexGateConfigParams { pub strategy: GateStrategy, pub k: usize, pub num_advice_per_phase: Vec, pub num_lookup_advice_per_phase: Vec, pub num_fixed: usize, } Expand description A Config struct defining the parameters for a FlexGate circuit. Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#fields) -------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#structfield.strategy) `strategy: [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") ` The gate strategy used for the advice column of the circuit and applied at every row. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#structfield.k) `k: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ` Security parameter `k` used for the keygen. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#structfield.num_advice_per_phase) `num_advice_per_phase: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) >` The number of advice columns per phase [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#structfield.num_lookup_advice_per_phase) `num_lookup_advice_per_phase: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) >` The number of advice columns that do not have lookup enabled per phase [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#structfield.num_fixed) `num_fixed: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ` The number of fixed columns per phase Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#trait-implementations) -------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#449) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-Clone-for-FlexGateConfigParams) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [FlexGateConfigParams](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html "struct halo2_base::gates::builder::FlexGateConfigParams") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#449) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [FlexGateConfigParams](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html "struct halo2_base::gates::builder::FlexGateConfigParams") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#449) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-Debug-for-FlexGateConfigParams) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [FlexGateConfigParams](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html "struct halo2_base::gates::builder::FlexGateConfigParams") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#449) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#449) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-Deserialize%3C%27de%3E-for-FlexGateConfigParams) ### impl<'de> [Deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html "trait serde::de::Deserialize") <'de> for [FlexGateConfigParams](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html "struct halo2_base::gates::builder::FlexGateConfigParams") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#449) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.deserialize) #### fn [deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html#tymethod.deserialize) <\_\_D>(\_\_deserializer: \_\_D) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     \_\_D: [Deserializer](https://docs.rs/serde/1.0.163/serde/de/trait.Deserializer.html "trait serde::de::Deserializer") <'de>, Deserialize this value from the given Serde deserializer. [Read more](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html#tymethod.deserialize) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#449) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-Serialize-for-FlexGateConfigParams) ### impl [Serialize](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html "trait serde::ser::Serialize") for [FlexGateConfigParams](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html "struct halo2_base::gates::builder::FlexGateConfigParams") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#449) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.serialize) #### fn [serialize](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html#tymethod.serialize) <\_\_S>(&self, \_\_serializer: \_\_S) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <\_\_S::[Ok](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html#associatedtype.Ok "type serde::ser::Serializer::Ok") , \_\_S::[Error](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html#associatedtype.Error "type serde::ser::Serializer::Error") \>where     \_\_S: [Serializer](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html "trait serde::ser::Serializer") , Serialize this value into the given Serde serializer. [Read more](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html#tymethod.serialize) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#synthetic-implementations) ----------------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-RefUnwindSafe-for-FlexGateConfigParams) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [FlexGateConfigParams](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html "struct halo2_base::gates::builder::FlexGateConfigParams") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-Send-for-FlexGateConfigParams) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [FlexGateConfigParams](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html "struct halo2_base::gates::builder::FlexGateConfigParams") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-Sync-for-FlexGateConfigParams) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [FlexGateConfigParams](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html "struct halo2_base::gates::builder::FlexGateConfigParams") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-Unpin-for-FlexGateConfigParams) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [FlexGateConfigParams](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html "struct halo2_base::gates::builder::FlexGateConfigParams") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-UnwindSafe-for-FlexGateConfigParams) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [FlexGateConfigParams](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html "struct halo2_base::gates::builder::FlexGateConfigParams") Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#blanket-implementations) ------------------------------------------------------------------------------------------------------------------------------------------------------ [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-Any-for-FlexGateConfigParams) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-Borrow%3CT%3E-for-FlexGateConfigParams) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-BorrowMut%3CT%3E-for-FlexGateConfigParams) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-Conv-for-FlexGateConfigParams) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-FmtForward-for-FlexGateConfigParams) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-From%3CT%3E-for-FlexGateConfigParams) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-Instrument-for-FlexGateConfigParams) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-Into%3CU%3E-for-FlexGateConfigParams) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-Pipe-for-FlexGateConfigParams) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-Pointable-for-FlexGateConfigParams) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-Same%3CT%3E-for-FlexGateConfigParams) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-Tap-for-FlexGateConfigParams) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-ToOwned-for-FlexGateConfigParams) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-TryConv-for-FlexGateConfigParams) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-TryFrom%3CU%3E-for-FlexGateConfigParams) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-TryInto%3CU%3E-for-FlexGateConfigParams) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-VZip%3CV%3E-for-FlexGateConfigParams) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-WithSubscriber-for-FlexGateConfigParams) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) [source](https://docs.rs/serde/1.0.163/src/serde/de/mod.rs.html#604) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html#impl-DeserializeOwned-for-FlexGateConfigParams) ### impl [DeserializeOwned](https://docs.rs/serde/1.0.163/serde/de/trait.DeserializeOwned.html "trait serde::de::DeserializeOwned") for Twhere     T: for<'de> [Deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html "trait serde::de::Deserialize") <'de>, --- # KeygenAssignments in halo2_base::gates::builder - Rust Struct [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[builder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/index.html) ::[KeygenAssignments](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#30-37) · [\[−\]](javascript:void(0) "collapse all docs") pub struct KeygenAssignments { pub assigned_advices: HashMap<(usize, usize), (Cell, usize)>, pub assigned_constants: HashMap, pub break_points: MultiPhaseThreadBreakPoints, } Expand description Stores the cell values loaded during the Keygen phase of a halo2 proof and breakpoints for multi-threading Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#fields) ----------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#structfield.assigned_advices) `assigned_advices: [HashMap](https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html "struct std::collections::hash::map::HashMap") <([usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) , [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ), (Cell, [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) )>` Advice assignments [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#structfield.assigned_constants) `assigned_constants: [HashMap](https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html "struct std::collections::hash::map::HashMap") ` Constant assignments in Fixes Assignments [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#structfield.break_points) `break_points: [MultiPhaseThreadBreakPoints](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/type.MultiPhaseThreadBreakPoints.html "type halo2_base::gates::builder::MultiPhaseThreadBreakPoints") ` Advice column break points for threads in each phase. Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#trait-implementations) ----------------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#29) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-Clone-for-KeygenAssignments%3CF%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [KeygenAssignments](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html "struct halo2_base::gates::builder::KeygenAssignments") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#29) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [KeygenAssignments](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html "struct halo2_base::gates::builder::KeygenAssignments") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#29) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-Debug-for-KeygenAssignments%3CF%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [KeygenAssignments](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html "struct halo2_base::gates::builder::KeygenAssignments") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#29) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#29) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-Default-for-KeygenAssignments%3CF%3E) ### impl [Default](https://doc.rust-lang.org/nightly/core/default/trait.Default.html "trait core::default::Default") for [KeygenAssignments](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html "struct halo2_base::gates::builder::KeygenAssignments") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#29) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.default) #### fn [default](https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default) () -> [KeygenAssignments](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html "struct halo2_base::gates::builder::KeygenAssignments") Returns the “default value” for a type. [Read more](https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#synthetic-implementations) -------------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-RefUnwindSafe-for-KeygenAssignments%3CF%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [KeygenAssignments](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html "struct halo2_base::gates::builder::KeygenAssignments") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-Send-for-KeygenAssignments%3CF%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [KeygenAssignments](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html "struct halo2_base::gates::builder::KeygenAssignments") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-Sync-for-KeygenAssignments%3CF%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [KeygenAssignments](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html "struct halo2_base::gates::builder::KeygenAssignments") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-Unpin-for-KeygenAssignments%3CF%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [KeygenAssignments](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html "struct halo2_base::gates::builder::KeygenAssignments") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-UnwindSafe-for-KeygenAssignments%3CF%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [KeygenAssignments](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html "struct halo2_base::gates::builder::KeygenAssignments") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#blanket-implementations) --------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-Any-for-KeygenAssignments%3CF%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-Borrow%3CT%3E-for-KeygenAssignments%3CF%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-BorrowMut%3CT%3E-for-KeygenAssignments%3CF%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-Conv-for-KeygenAssignments%3CF%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-FmtForward-for-KeygenAssignments%3CF%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-From%3CT%3E-for-KeygenAssignments%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-Instrument-for-KeygenAssignments%3CF%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-Into%3CU%3E-for-KeygenAssignments%3CF%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-Pipe-for-KeygenAssignments%3CF%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-Pointable-for-KeygenAssignments%3CF%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-Same%3CT%3E-for-KeygenAssignments%3CF%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-Tap-for-KeygenAssignments%3CF%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-ToOwned-for-KeygenAssignments%3CF%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-TryConv-for-KeygenAssignments%3CF%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-TryFrom%3CU%3E-for-KeygenAssignments%3CF%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-TryInto%3CU%3E-for-KeygenAssignments%3CF%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-VZip%3CV%3E-for-KeygenAssignments%3CF%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#impl-WithSubscriber-for-KeygenAssignments%3CF%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # GateThreadBuilder in halo2_base::gates::builder - Rust Struct [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[builder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/index.html) ::[GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#41-50) · [\[−\]](javascript:void(0) "collapse all docs") pub struct GateThreadBuilder { pub threads: [Vec>; 3], pub witness_gen_only: bool, /* private fields */ } Expand description Builds the process for gate threading Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#fields) ----------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#structfield.threads) `threads: [[Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") >; [3](https://doc.rust-lang.org/nightly/std/primitive.array.html) ]` Threads for each challenge phase [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#structfield.witness_gen_only) `witness_gen_only: [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) ` Flag for witness generation. If true, the gate thread builder is used for witness generation only. Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#implementations) ----------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#52-365) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-GateThreadBuilder%3CF%3E) ### impl [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#58-63) #### pub fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.new) (witness\_gen\_only: [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) ) -> Self Creates a new [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "GateThreadBuilder") and spawns a main thread in phase 0. * `witness_gen_only`: If true, the [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "GateThreadBuilder") is used for witness generation only. * If true, the gate thread builder only does witness asignments and does not store constraint information – this should only be used for the real prover. * If false, the gate thread builder is used for keygen and mock prover (it can also be used for real prover) and the builder stores circuit information (e.g. copy constraints, fixed columns, enabled selectors). * These values are fixed for the circuit at key generation time, and they do not need to be re-computed by the prover in the actual proving phase. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#68-70) #### pub fn [mock](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.mock) () -> Self Creates a new [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "GateThreadBuilder") with `witness_gen_only` set to false. Performs the witness assignment computations and then checks using normal programming logic whether the gate constraints are all satisfied. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#75-77) #### pub fn [keygen](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.keygen) () -> Self Creates a new [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "GateThreadBuilder") with `witness_gen_only` set to false. Performs the witness assignment computations and generates prover and verifier keys. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#82-84) #### pub fn [prover](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.prover) () -> Self Creates a new [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "GateThreadBuilder") with `witness_gen_only` set to true. Performs the witness assignment computations and then runs the proving system. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#88-90) #### pub fn [unknown](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.unknown) (self, use\_unknown: [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) ) -> Self Creates a new [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "GateThreadBuilder") with `use_unknown` flag set. * `use_unknown`: If true, during key generation witness \[Value\]s are replaced with Value::unknown() for safety. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#94-100) #### pub fn [main](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.main) (&mut self, phase: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") Returns a mutable reference to the [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") of a gate thread. Spawns a new thread for the given phase, if none exists. * `phase`: The challenge phase (as an index) of the gate thread. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#103-105) #### pub fn [witness\_gen\_only](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.witness_gen_only) (&self) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) Returns the `witness_gen_only` flag. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#108-110) #### pub fn [use\_unknown](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.use_unknown) (&self) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) Returns the `use_unknown` flag. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#113-115) #### pub fn [thread\_count](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.thread_count) (&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Returns the current number of threads in the [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "GateThreadBuilder") . [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#118-122) #### pub fn [get\_new\_thread\_id](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.get_new_thread_id) (&mut self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Creates a new thread id by incrementing the `thread count` [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#126-131) #### pub fn [new\_thread](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.new_thread) (&mut self, phase: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") Spawns a new thread for a new given `phase`. Returns a mutable reference to the [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") of the new thread. * `phase`: The phase (index) of the gate thread. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#137-189) #### pub fn [config](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.config) (     &self,     k: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ,     minimum\_rows: [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") <[usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) \> ) -> [FlexGateConfigParams](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html "struct halo2_base::gates::builder::FlexGateConfigParams") Auto-calculates configuration parameters for the circuit * `k`: The number of in the circuit (i.e. numeber of rows = 2k) * `minimum_rows`: The minimum number of rows in the circuit that cannot be used for witness assignments and contain random `blinding factors` to ensure zk property, defaults to 0. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#205-364) #### pub fn [assign\_all](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.assign_all) (     &self,     config: &[FlexGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html "struct halo2_base::gates::flex_gate::FlexGateConfig") ,     lookup\_advice: &\[[Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec")\ >\],     q\_lookup: &\[[Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option")\ \],     region: &mut Region<'\_, F>,     \_: [KeygenAssignments](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html "struct halo2_base::gates::builder::KeygenAssignments") ) -> [KeygenAssignments](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html "struct halo2_base::gates::builder::KeygenAssignments") Assigns all advice and fixed cells, turns on selectors, and imposes equality constraints. Returns the assigned advices, and constants in the form of [KeygenAssignments](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html "KeygenAssignments") . Assumes selector and advice columns are already allocated and of the same length. Note: `assign_all()` **should** be called during keygen or if using mock prover. It also works for the real prover, but there it is more optimal to use [`assign_threads_in`](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/fn.assign_threads_in.html "assign_threads_in") instead. * `config`: The [FlexGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html "FlexGateConfig") of the circuit. * `lookup_advice`: The lookup advice columns. * `q_lookup`: The lookup advice selectors. * `region`: The \[Region\] of the circuit. * `assigned_advices`: The assigned advice cells. * `assigned_constants`: The assigned fixed cells. * `break_points`: The break points of the circuit. Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#trait-implementations) ----------------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#40) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-Clone-for-GateThreadBuilder%3CF%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#40) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#40) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-Debug-for-GateThreadBuilder%3CF%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#40) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#40) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-Default-for-GateThreadBuilder%3CF%3E) ### impl [Default](https://doc.rust-lang.org/nightly/core/default/trait.Default.html "trait core::default::Default") for [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#40) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.default) #### fn [default](https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default) () -> [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") Returns the “default value” for a type. [Read more](https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#synthetic-implementations) -------------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-RefUnwindSafe-for-GateThreadBuilder%3CF%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-Send-for-GateThreadBuilder%3CF%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-Sync-for-GateThreadBuilder%3CF%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-Unpin-for-GateThreadBuilder%3CF%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-UnwindSafe-for-GateThreadBuilder%3CF%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#blanket-implementations) --------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-Any-for-GateThreadBuilder%3CF%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-Borrow%3CT%3E-for-GateThreadBuilder%3CF%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-BorrowMut%3CT%3E-for-GateThreadBuilder%3CF%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-Conv-for-GateThreadBuilder%3CF%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-FmtForward-for-GateThreadBuilder%3CF%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-From%3CT%3E-for-GateThreadBuilder%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-Instrument-for-GateThreadBuilder%3CF%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-Into%3CU%3E-for-GateThreadBuilder%3CF%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-Pipe-for-GateThreadBuilder%3CF%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-Pointable-for-GateThreadBuilder%3CF%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-Same%3CT%3E-for-GateThreadBuilder%3CF%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-Tap-for-GateThreadBuilder%3CF%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-ToOwned-for-GateThreadBuilder%3CF%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-TryConv-for-GateThreadBuilder%3CF%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-TryFrom%3CU%3E-for-GateThreadBuilder%3CF%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-TryInto%3CU%3E-for-GateThreadBuilder%3CF%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-VZip%3CV%3E-for-GateThreadBuilder%3CF%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#impl-WithSubscriber-for-GateThreadBuilder%3CF%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # RangeCircuitBuilder in halo2_base::gates::builder - Rust Struct [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[builder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/index.html) ::[RangeCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ==================================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#592) · [\[−\]](javascript:void(0) "collapse all docs") pub struct RangeCircuitBuilder(pub GateCircuitBuilder); Expand description A wrapper struct to auto-build a circuit from a `GateThreadBuilder`. Tuple Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#fields) ------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#structfield.0) `0: [GateCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html "struct halo2_base::gates::builder::GateCircuitBuilder") ` Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#implementations) ------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#594-612) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-RangeCircuitBuilder%3CF%3E) ### impl [RangeCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html "struct halo2_base::gates::builder::RangeCircuitBuilder") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#596-598) #### pub fn [keygen](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.keygen) (builder: [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") ) -> Self Creates an instance of the [RangeCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html "RangeCircuitBuilder") and executes in keygen mode. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#601-603) #### pub fn [mock](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.mock) (builder: [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") ) -> Self Creates a mock instance of the [RangeCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html "RangeCircuitBuilder") . [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#606-611) #### pub fn [prover](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.prover) (     builder: [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") ,     break\_points: [MultiPhaseThreadBreakPoints](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/type.MultiPhaseThreadBreakPoints.html "type halo2_base::gates::builder::MultiPhaseThreadBreakPoints") ) -> Self Creates an instance of the [RangeCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html "RangeCircuitBuilder") and executes in prover mode. Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#trait-implementations) ------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#614-662) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-Circuit%3CF%3E-for-RangeCircuitBuilder%3CF%3E) ### impl Circuit for [RangeCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html "struct halo2_base::gates::builder::RangeCircuitBuilder") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#619-621) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.without_witnesses) #### fn without\_witnesses(&self) -> Self Creates a new instance of the [RangeCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html "RangeCircuitBuilder") without witnesses by setting the witness\_gen\_only flag to false [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#624-645) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.configure) #### fn configure(meta: &mut ConstraintSystem) -> Self::Config Configures a new circuit using the the parameters specified \[Config\] and environment variable `LOOKUP_BITS`. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#648-661) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.synthesize) #### fn synthesize(     &self,     config: Self::Config,     layouter: impl Layouter ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[()](https://doc.rust-lang.org/nightly/std/primitive.unit.html) , Error> Performs the actual computation on the circuit (e.g., witness generation), populating the lookup table and filling in all the advice values for a particular proof. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#associatedtype.Config) #### type Config = [RangeConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html "struct halo2_base::gates::range::RangeConfig") This is a configuration object that stores things like columns. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#associatedtype.FloorPlanner) #### type FloorPlanner = SimpleFloorPlanner The floor planner used for this circuit. This is an associated type of the `Circuit` trait because its behaviour is circuit-critical. Read more [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#591) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-Clone-for-RangeCircuitBuilder%3CF%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [RangeCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html "struct halo2_base::gates::builder::RangeCircuitBuilder") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#591) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [RangeCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html "struct halo2_base::gates::builder::RangeCircuitBuilder") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#591) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-Debug-for-RangeCircuitBuilder%3CF%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [RangeCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html "struct halo2_base::gates::builder::RangeCircuitBuilder") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#591) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#synthetic-implementations) ---------------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-RefUnwindSafe-for-RangeCircuitBuilder%3CF%3E) ### impl ![RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [RangeCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html "struct halo2_base::gates::builder::RangeCircuitBuilder") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-Send-for-RangeCircuitBuilder%3CF%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [RangeCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html "struct halo2_base::gates::builder::RangeCircuitBuilder") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-Sync-for-RangeCircuitBuilder%3CF%3E) ### impl ![Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [RangeCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html "struct halo2_base::gates::builder::RangeCircuitBuilder") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-Unpin-for-RangeCircuitBuilder%3CF%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [RangeCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html "struct halo2_base::gates::builder::RangeCircuitBuilder") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-UnwindSafe-for-RangeCircuitBuilder%3CF%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [RangeCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html "struct halo2_base::gates::builder::RangeCircuitBuilder") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#blanket-implementations) ----------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-Any-for-RangeCircuitBuilder%3CF%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-Borrow%3CT%3E-for-RangeCircuitBuilder%3CF%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-BorrowMut%3CT%3E-for-RangeCircuitBuilder%3CF%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-Conv-for-RangeCircuitBuilder%3CF%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-FmtForward-for-RangeCircuitBuilder%3CF%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-From%3CT%3E-for-RangeCircuitBuilder%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-Instrument-for-RangeCircuitBuilder%3CF%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-Into%3CU%3E-for-RangeCircuitBuilder%3CF%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-Pipe-for-RangeCircuitBuilder%3CF%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-Pointable-for-RangeCircuitBuilder%3CF%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-Same%3CT%3E-for-RangeCircuitBuilder%3CF%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-Tap-for-RangeCircuitBuilder%3CF%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-ToOwned-for-RangeCircuitBuilder%3CF%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-TryConv-for-RangeCircuitBuilder%3CF%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-TryFrom%3CU%3E-for-RangeCircuitBuilder%3CF%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-TryInto%3CU%3E-for-RangeCircuitBuilder%3CF%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-VZip%3CV%3E-for-RangeCircuitBuilder%3CF%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#impl-WithSubscriber-for-RangeCircuitBuilder%3CF%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # RangeWithInstanceCircuitBuilder in halo2_base::gates::builder - Rust Struct [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[builder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/index.html) ::[RangeWithInstanceCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#678-683) · [\[−\]](javascript:void(0) "collapse all docs") pub struct RangeWithInstanceCircuitBuilder { pub circuit: RangeCircuitBuilder, pub assigned_instances: Vec>, } Expand description This is an extension of [`RangeCircuitBuilder`](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html "RangeCircuitBuilder") that adds support for public instances (aka public inputs+outputs) The intended design is that a [`GateThreadBuilder`](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "GateThreadBuilder") is populated and then produces some assigned instances, which are supplied as `assigned_instances` to this struct. The \[`Circuit`\] implementation for this struct will then expose these instances and constrain them using the Halo2 API. Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#fields) ------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#structfield.circuit) `circuit: [RangeCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html "struct halo2_base::gates::builder::RangeCircuitBuilder") ` The underlying circuit builder [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#structfield.assigned_instances) `assigned_instances: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") >` The assigned instances to expose publicly at the end of circuit synthesis Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#implementations) ------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#685-732) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl [RangeWithInstanceCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html "struct halo2_base::gates::builder::RangeWithInstanceCircuitBuilder") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#687-692) #### pub fn [keygen](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.keygen) (     builder: [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") ,     assigned\_instances: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") > ) -> Self See [`RangeCircuitBuilder::keygen`](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.keygen "RangeCircuitBuilder::keygen") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#695-697) #### pub fn [mock](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.mock) (     builder: [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") ,     assigned\_instances: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") > ) -> Self See [`RangeCircuitBuilder::mock`](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.mock "RangeCircuitBuilder::mock") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#700-706) #### pub fn [prover](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.prover) (     builder: [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") ,     assigned\_instances: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") >,     break\_points: [MultiPhaseThreadBreakPoints](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/type.MultiPhaseThreadBreakPoints.html "type halo2_base::gates::builder::MultiPhaseThreadBreakPoints") ) -> Self See [`RangeCircuitBuilder::prover`](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html#method.prover "RangeCircuitBuilder::prover") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#709-711) #### pub fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.new) (     circuit: [RangeCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html "struct halo2_base::gates::builder::RangeCircuitBuilder") ,     assigned\_instances: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") > ) -> Self Creates a new instance of the [RangeWithInstanceCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html "RangeWithInstanceCircuitBuilder") . [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#714-716) #### pub fn [config](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.config) (&self, k: [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) , minimum\_rows: [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") <[usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) \>) -> [FlexGateConfigParams](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html "struct halo2_base::gates::builder::FlexGateConfigParams") Calls [`GateThreadBuilder::config`](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html#method.config "GateThreadBuilder::config") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#719-721) #### pub fn [break\_points](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.break_points) (&self) -> [MultiPhaseThreadBreakPoints](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/type.MultiPhaseThreadBreakPoints.html "type halo2_base::gates::builder::MultiPhaseThreadBreakPoints") Gets the break points of the circuit. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#724-726) #### pub fn [instance\_count](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.instance_count) (&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Gets the number of instances. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#729-731) #### pub fn [instance](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.instance) (&self) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") Gets the instances. Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#trait-implementations) ------------------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#734-785) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-Circuit%3CF%3E-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl Circuit for [RangeWithInstanceCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html "struct halo2_base::gates::builder::RangeWithInstanceCircuitBuilder") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#associatedtype.Config) #### type Config = [RangeWithInstanceConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html "struct halo2_base::gates::builder::RangeWithInstanceConfig") This is a configuration object that stores things like columns. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#associatedtype.FloorPlanner) #### type FloorPlanner = SimpleFloorPlanner The floor planner used for this circuit. This is an associated type of the `Circuit` trait because its behaviour is circuit-critical. Read more [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#738-740) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.without_witnesses) #### fn without\_witnesses(&self) -> Self Returns a copy of this circuit with no witness values (i.e. all witnesses set to `None`). For most circuits, this will be equal to `Self::default()`. Read more [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#742-747) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.configure) #### fn configure(meta: &mut ConstraintSystem) -> Self::Config The circuit is given an opportunity to describe the exact gate arrangement, column arrangement, etc. Read more [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#749-784) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.synthesize) #### fn synthesize(     &self,     config: Self::Config,     layouter: impl Layouter ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[()](https://doc.rust-lang.org/nightly/std/primitive.unit.html) , Error> Given the provided `cs`, synthesize the circuit. The concrete type of the caller will be different depending on the context, and they may or may not expect to have a witness present. Read more [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#677) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-Clone-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [RangeWithInstanceCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html "struct halo2_base::gates::builder::RangeWithInstanceCircuitBuilder") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#677) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [RangeWithInstanceCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html "struct halo2_base::gates::builder::RangeWithInstanceCircuitBuilder") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#677) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-Debug-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [RangeWithInstanceCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html "struct halo2_base::gates::builder::RangeWithInstanceCircuitBuilder") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#677) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#synthetic-implementations) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-RefUnwindSafe-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl ![RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [RangeWithInstanceCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html "struct halo2_base::gates::builder::RangeWithInstanceCircuitBuilder") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-Send-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [RangeWithInstanceCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html "struct halo2_base::gates::builder::RangeWithInstanceCircuitBuilder") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-Sync-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl ![Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [RangeWithInstanceCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html "struct halo2_base::gates::builder::RangeWithInstanceCircuitBuilder") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-Unpin-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [RangeWithInstanceCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html "struct halo2_base::gates::builder::RangeWithInstanceCircuitBuilder") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-UnwindSafe-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [RangeWithInstanceCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html "struct halo2_base::gates::builder::RangeWithInstanceCircuitBuilder") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#blanket-implementations) ----------------------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-Any-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-Borrow%3CT%3E-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-BorrowMut%3CT%3E-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-Conv-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-FmtForward-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-From%3CT%3E-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-Instrument-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-Into%3CU%3E-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-Pipe-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-Pointable-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-Same%3CT%3E-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-Tap-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-ToOwned-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-TryConv-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-TryFrom%3CU%3E-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-TryInto%3CU%3E-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-VZip%3CV%3E-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#impl-WithSubscriber-for-RangeWithInstanceCircuitBuilder%3CF%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # RangeWithInstanceConfig in halo2_base::gates::builder - Rust Struct [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[builder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/index.html) ::[RangeWithInstanceConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#666-671) · [\[−\]](javascript:void(0) "collapse all docs") pub struct RangeWithInstanceConfig { pub range: RangeConfig, pub instance: Column, } Expand description Configuration with [`RangeConfig`](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html "RangeConfig") and a single public instance column. Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#fields) ----------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#structfield.range) `range: [RangeConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html "struct halo2_base::gates::range::RangeConfig") ` The underlying range configuration [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#structfield.instance) `instance: Column` The public instance column Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#trait-implementations) ----------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#665) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-Clone-for-RangeWithInstanceConfig%3CF%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [RangeWithInstanceConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html "struct halo2_base::gates::builder::RangeWithInstanceConfig") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#665) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [RangeWithInstanceConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html "struct halo2_base::gates::builder::RangeWithInstanceConfig") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#665) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-Debug-for-RangeWithInstanceConfig%3CF%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [RangeWithInstanceConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html "struct halo2_base::gates::builder::RangeWithInstanceConfig") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#665) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#synthetic-implementations) -------------------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-RefUnwindSafe-for-RangeWithInstanceConfig%3CF%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [RangeWithInstanceConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html "struct halo2_base::gates::builder::RangeWithInstanceConfig") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-Send-for-RangeWithInstanceConfig%3CF%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [RangeWithInstanceConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html "struct halo2_base::gates::builder::RangeWithInstanceConfig") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-Sync-for-RangeWithInstanceConfig%3CF%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [RangeWithInstanceConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html "struct halo2_base::gates::builder::RangeWithInstanceConfig") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-Unpin-for-RangeWithInstanceConfig%3CF%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [RangeWithInstanceConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html "struct halo2_base::gates::builder::RangeWithInstanceConfig") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-UnwindSafe-for-RangeWithInstanceConfig%3CF%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [RangeWithInstanceConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html "struct halo2_base::gates::builder::RangeWithInstanceConfig") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#blanket-implementations) --------------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-Any-for-RangeWithInstanceConfig%3CF%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-Borrow%3CT%3E-for-RangeWithInstanceConfig%3CF%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-BorrowMut%3CT%3E-for-RangeWithInstanceConfig%3CF%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-Conv-for-RangeWithInstanceConfig%3CF%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-FmtForward-for-RangeWithInstanceConfig%3CF%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-From%3CT%3E-for-RangeWithInstanceConfig%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-Instrument-for-RangeWithInstanceConfig%3CF%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-Into%3CU%3E-for-RangeWithInstanceConfig%3CF%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-Pipe-for-RangeWithInstanceConfig%3CF%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-Pointable-for-RangeWithInstanceConfig%3CF%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-Same%3CT%3E-for-RangeWithInstanceConfig%3CF%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-Tap-for-RangeWithInstanceConfig%3CF%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-ToOwned-for-RangeWithInstanceConfig%3CF%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-TryConv-for-RangeWithInstanceConfig%3CF%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-TryFrom%3CU%3E-for-RangeWithInstanceConfig%3CF%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-TryInto%3CU%3E-for-RangeWithInstanceConfig%3CF%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-VZip%3CV%3E-for-RangeWithInstanceConfig%3CF%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#impl-WithSubscriber-for-RangeWithInstanceConfig%3CF%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # BasicGateConfig in halo2_base::gates::flex_gate - Rust Struct [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[flex\_gate](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/index.html) ::[BasicGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =================================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#37-45) · [\[−\]](javascript:void(0) "collapse all docs") pub struct BasicGateConfig { pub q_enable: Selector, pub value: Column, /* private fields */ } Expand description A configuration for a basic gate chip describing the selector, and advice column values. Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#fields) ----------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#structfield.q_enable) `q_enable: Selector` \[Selector\] column that stores selector values that are used to activate gates in the advice column. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#structfield.value) `value: Column` \[Column\] that stores the advice values of the gate. Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#implementations) ----------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#47-88) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-BasicGateConfig%3CF%3E) ### impl [BasicGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html "struct halo2_base::gates::flex_gate::BasicGateConfig") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#54-72) #### pub fn [configure](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.configure) (     meta: &mut ConstraintSystem,     strategy: [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") ,     phase: [u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ) -> Self Instantiates a new [BasicGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html "BasicGateConfig") . Assumes `phase` is in the range \[0, MAX\_PHASE).\ \ * `meta`: \[ConstraintSystem\] used for the gate\ * `strategy`: The [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "GateStrategy")\ to use for the gate\ * `phase`: The phase to add the gate to\ \ Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#trait-implementations)\ \ -----------------------------------------------------------------------------------------------------------------------------------------------\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#36)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-Clone-for-BasicGateConfig%3CF%3E)\ \ ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone")\ for [BasicGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html "struct halo2_base::gates::flex_gate::BasicGateConfig")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#36)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.clone)\ \ #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone)\ (&self) -> [BasicGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html "struct halo2_base::gates::flex_gate::BasicGateConfig")\ \ \ Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone)\ \ 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.clone_from)\ \ #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from)\ (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)\ \ Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from)\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#36)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-Debug-for-BasicGateConfig%3CF%3E)\ \ ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug")\ for [BasicGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html "struct halo2_base::gates::flex_gate::BasicGateConfig")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#36)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.fmt)\ \ #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt)\ (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter")\ <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result")\ \ Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt)\ \ Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#synthetic-implementations)\ \ --------------------------------------------------------------------------------------------------------------------------------------------------------\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-RefUnwindSafe-for-BasicGateConfig%3CF%3E)\ \ ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe")\ for [BasicGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html "struct halo2_base::gates::flex_gate::BasicGateConfig")\ where \     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-Send-for-BasicGateConfig%3CF%3E)\ \ ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send")\ for [BasicGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html "struct halo2_base::gates::flex_gate::BasicGateConfig")\ \ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-Sync-for-BasicGateConfig%3CF%3E)\ \ ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync")\ for [BasicGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html "struct halo2_base::gates::flex_gate::BasicGateConfig")\ \ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-Unpin-for-BasicGateConfig%3CF%3E)\ \ ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin")\ for [BasicGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html "struct halo2_base::gates::flex_gate::BasicGateConfig")\ where \     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-UnwindSafe-for-BasicGateConfig%3CF%3E)\ \ ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe")\ for [BasicGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html "struct halo2_base::gates::flex_gate::BasicGateConfig")\ where \     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe")\ ,\ \ Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#blanket-implementations)\ \ ---------------------------------------------------------------------------------------------------------------------------------------------------\ \ [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-Any-for-BasicGateConfig%3CF%3E)\ \ ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any")\ for Twhere \     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.type_id)\ \ #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id)\ (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId")\ \ Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id)\ \ [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-Borrow%3CT%3E-for-BasicGateConfig%3CF%3E)\ \ ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow")\ for Twhere \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow")\ · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.borrow)\ \ #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow)\ (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T\ \ Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow)\ \ [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-BorrowMut%3CT%3E-for-BasicGateConfig%3CF%3E)\ \ ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut")\ for Twhere \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow")\ · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.borrow_mut)\ \ #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut)\ (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T\ \ Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut)\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-Conv-for-BasicGateConfig%3CF%3E)\ \ ### impl Conv for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.conv)\ \ #### fn conv(self) -> Twhere \     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ ,\ \ Converts `self` into `T` using `Into`. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-FmtForward-for-BasicGateConfig%3CF%3E)\ \ ### impl FmtForward for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.fmt_binary)\ \ #### fn fmt\_binary(self) -> FmtBinarywhere \     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary")\ ,\ \ Causes `self` to use its `Binary` implementation when `Debug`\-formatted.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.fmt_display)\ \ #### fn fmt\_display(self) -> FmtDisplaywhere \     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display")\ ,\ \ Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.fmt_lower_exp)\ \ #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere \     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp")\ ,\ \ Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.fmt_lower_hex)\ \ #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere \     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex")\ ,\ \ Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.fmt_octal)\ \ #### fn fmt\_octal(self) -> FmtOctalwhere \     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal")\ ,\ \ Causes `self` to use its `Octal` implementation when `Debug`\-formatted.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.fmt_pointer)\ \ #### fn fmt\_pointer(self) -> FmtPointerwhere \     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer")\ ,\ \ Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.fmt_upper_exp)\ \ #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere \     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp")\ ,\ \ Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.fmt_upper_hex)\ \ #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere \     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex")\ ,\ \ Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.fmt_list)\ \ #### fn fmt\_list(self) -> FmtListwhere \     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator")\ ,\ \ Formats each item in a sequence. Read more\ \ [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-From%3CT%3E-for-BasicGateConfig%3CF%3E)\ \ ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From")\ for T\ \ const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert")\ · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.from)\ \ #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from)\ (t: T) -> T\ \ Returns the argument unchanged.\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-Instrument-for-BasicGateConfig%3CF%3E)\ \ ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument")\ for T\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.instrument)\ \ #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument)\ (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span")\ ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented")\ \ \ Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span")\ , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument)\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.in_current_span)\ \ #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span)\ (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented")\ \ \ Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current)\ [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html)\ , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span)\ \ [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-Into%3CU%3E-for-BasicGateConfig%3CF%3E)\ \ ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ for Twhere \     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From")\ ,\ \ const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert")\ · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.into)\ \ #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into)\ (self) -> U\ \ Calls `U::from(self)`.\ \ That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-Pipe-for-BasicGateConfig%3CF%3E)\ \ ### impl Pipe for Twhere \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.pipe)\ \ #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ (Self) -> R) -> Rwhere \     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Pipes by value. This is generally the method you want to use. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.pipe_ref)\ \ #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self) -> R) -> Rwhere \     R: 'a,\ \ Borrows `self` and passes that borrow into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.pipe_ref_mut)\ \ #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self) -> R) -> Rwhere \     R: 'a,\ \ Mutably borrows `self` and passes that borrow into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.pipe_borrow)\ \ #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B) -> R) -> Rwhere \     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow")\ , \     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Borrows `self`, then passes `self.borrow()` into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.pipe_borrow_mut)\ \ #### fn pipe\_borrow\_mut<'a, B, R>( \     &'a mut self, \     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B) -> R \ ) -> Rwhere \     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut")\ , \     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.pipe_as_ref)\ \ #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ U) -> R) -> Rwhere \     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef")\ , \     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Borrows `self`, then passes `self.as_ref()` into the pipe function.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.pipe_as_mut)\ \ #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ U) -> R) -> Rwhere \     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut")\ , \     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.pipe_deref)\ \ #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T) -> R) -> Rwhere \     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Borrows `self`, then passes `self.deref()` into the pipe function.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.pipe_deref_mut)\ \ #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T) -> R) -> Rwhere \     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut")\ + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-Pointable-for-BasicGateConfig%3CF%3E)\ \ ### impl Pointable for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#associatedconstant.ALIGN)\ \ #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ = mem::align\_of::()\ \ The alignment of pointer.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#associatedtype.Init)\ \ #### type Init = T\ \ The type for initializers.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.init)\ \ #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ \ Initializes a with the given initializer. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.deref)\ \ #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T\ \ Dereferences the given pointer. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.deref_mut)\ \ #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T\ \ Mutably dereferences the given pointer. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.drop)\ \ #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ )\ \ Drops the object pointed to by the given pointer. Read more\ \ [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-Same%3CT%3E-for-BasicGateConfig%3CF%3E)\ \ ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same")\ for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#associatedtype.Output)\ \ #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output)\ = T\ \ Should always be `Self`\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-Tap-for-BasicGateConfig%3CF%3E)\ \ ### impl Tap for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.tap)\ \ #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)) -> Self\ \ Immutable access to a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.tap_mut)\ \ #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)) -> Self\ \ Mutable access to a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.tap_borrow)\ \ #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B)) -> Selfwhere \     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow")\ , \     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Immutable access to the `Borrow` of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.tap_borrow_mut)\ \ #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B)) -> Selfwhere \     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut")\ , \     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Mutable access to the `BorrowMut` of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.tap_ref)\ \ #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ R)) -> Selfwhere \     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef")\ , \     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Immutable access to the `AsRef` view of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.tap_ref_mut)\ \ #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ R)) -> Selfwhere \     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut")\ , \     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Mutable access to the `AsMut` view of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.tap_deref)\ \ #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)) -> Selfwhere \     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Immutable access to the `Deref::Target` of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.tap_deref_mut)\ \ #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)) -> Selfwhere \     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut")\ + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Mutable access to the `Deref::Target` of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.tap_dbg)\ \ #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)) -> Self\ \ Calls `.tap()` only in debug builds, and is erased in release builds.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.tap_mut_dbg)\ \ #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)) -> Self\ \ Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.tap_borrow_dbg)\ \ #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B)) -> Selfwhere \     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow")\ , \     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.tap_borrow_mut_dbg)\ \ #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B)) -> Selfwhere \     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut")\ , \     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.tap_ref_dbg)\ \ #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ R)) -> Selfwhere \     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef")\ , \     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.tap_ref_mut_dbg)\ \ #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ R)) -> Selfwhere \     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut")\ , \     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.tap_deref_dbg)\ \ #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)) -> Selfwhere \     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.tap_deref_mut_dbg)\ \ #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)) -> Selfwhere \     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut")\ + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more\ \ [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-ToOwned-for-BasicGateConfig%3CF%3E)\ \ ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned")\ for Twhere \     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#associatedtype.Owned)\ \ #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned)\ = T\ \ The resulting type after obtaining ownership.\ \ [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.to_owned)\ \ #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned)\ (&self) -> T\ \ Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned)\ \ [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.clone_into)\ \ #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into)\ (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)\ \ Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into)\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-TryConv-for-BasicGateConfig%3CF%3E)\ \ ### impl TryConv for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.try_conv)\ \ #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result")\ where \     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto")\ ,\ \ Attempts to convert `self` into `T` using `TryInto`. Read more\ \ [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-TryFrom%3CU%3E-for-BasicGateConfig%3CF%3E)\ \ ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom")\ for Twhere \     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#associatedtype.Error-1)\ \ #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error)\ = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible")\ \ The type returned in the event of a conversion error.\ \ const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert")\ · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.try_from)\ \ #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from)\ (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result")\ >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error")\ \>\ \ Performs the conversion.\ \ [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-TryInto%3CU%3E-for-BasicGateConfig%3CF%3E)\ \ ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto")\ for Twhere \     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#associatedtype.Error)\ \ #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error)\ = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error")\ \ The type returned in the event of a conversion error.\ \ const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert")\ · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.try_into)\ \ #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into)\ (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result")\ >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error")\ \>\ \ Performs the conversion.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-VZip%3CV%3E-for-BasicGateConfig%3CF%3E)\ \ ### impl VZip for Twhere \     V: MultiLane,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.vzip)\ \ #### fn vzip(self) -> V\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#impl-WithSubscriber-for-BasicGateConfig%3CF%3E)\ \ ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber")\ for T\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.with_subscriber)\ \ #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber)\ (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch")\ where \     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ ,\ \ Attaches the provided [`Subscriber`](super::Subscriber)\ to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch")\ wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber)\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html#method.with_current_subscriber)\ \ #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber)\ (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch")\ \ \ Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber)\ [`Subscriber`](super::Subscriber)\ to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch")\ wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # gen_srs in halo2_base::utils::fs - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[fs](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fs/index.html) ::[gen\_srs](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fs/fn.gen_srs.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#397-401) · [\[−\]](javascript:void(0) "collapse all docs") pub fn gen_srs(k: u32) -> ParamsKZG Expand description Generates the SRS for the KZG scheme and writes it to a file found in “./params/kzg\_bn2\_{k}.srs`or`{dir}/kzg\_bn254\_{k}.srs`if`PARAMS\_DIR\` env var is specified, creates a file it if it does not exist” * `k`: degree that expresses the size of circuit (i.e., 2^k is the number of rows in the circuit) --- # parallelize_in in halo2_base::gates::builder - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[builder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/index.html) ::[parallelize\_in](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/fn.parallelize_in.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder/parallelize.rs.html#9-38) · [\[−\]](javascript:void(0) "collapse all docs") pub fn parallelize_in(    phase: usize,    builder: &mut GateThreadBuilder,    input: Vec,    f: FR) -> Vecwhere    F: ScalarField,    T: Send,    R: Send,    FR: Fn(&mut Context, T) -> R + Send + Sync, Expand description Utility function to parallelize an operation involving [`Context`](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") s in phase `phase`. --- # CircuitBuilderStage in halo2_base::gates::builder - Rust Enum [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[builder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/index.html) ::[CircuitBuilderStage](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#789-796) · [\[−\]](javascript:void(0) "collapse all docs") pub enum CircuitBuilderStage { Keygen, Prover, Mock, } Expand description Defines stage of the circuit builder. Variants[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#variants) --------------------------------------------------------------------------------------------------------------------- ### [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#variant.Keygen) `Keygen` Keygen phase ### [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#variant.Prover) `Prover` Prover Circuit ### [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#variant.Mock) `Mock` Mock Circuit Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#trait-implementations) ----------------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#788) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-Clone-for-CircuitBuilderStage) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [CircuitBuilderStage](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html "enum halo2_base::gates::builder::CircuitBuilderStage") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#788) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [CircuitBuilderStage](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html "enum halo2_base::gates::builder::CircuitBuilderStage") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#788) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-Debug-for-CircuitBuilderStage) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [CircuitBuilderStage](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html "enum halo2_base::gates::builder::CircuitBuilderStage") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#788) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#788) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-PartialEq%3CCircuitBuilderStage%3E-for-CircuitBuilderStage) ### impl [PartialEq](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html "trait core::cmp::PartialEq") <[CircuitBuilderStage](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html "enum halo2_base::gates::builder::CircuitBuilderStage") \> for [CircuitBuilderStage](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html "enum halo2_base::gates::builder::CircuitBuilderStage") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#788) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.eq) #### fn [eq](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq) (&self, other: &[CircuitBuilderStage](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html "enum halo2_base::gates::builder::CircuitBuilderStage") ) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests for `self` and `other` values to be equal, and is used by `==`. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#227) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.ne) #### fn [ne](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne) (&self, other: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Rhs) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests for `!=`. The default implementation is almost always sufficient, and should not be overridden without very good reason. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#788) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-Copy-for-CircuitBuilderStage) ### impl [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") for [CircuitBuilderStage](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html "enum halo2_base::gates::builder::CircuitBuilderStage") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#788) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-Eq-for-CircuitBuilderStage) ### impl [Eq](https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html "trait core::cmp::Eq") for [CircuitBuilderStage](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html "enum halo2_base::gates::builder::CircuitBuilderStage") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#788) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-StructuralEq-for-CircuitBuilderStage) ### impl [StructuralEq](https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html "trait core::marker::StructuralEq") for [CircuitBuilderStage](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html "enum halo2_base::gates::builder::CircuitBuilderStage") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#788) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-StructuralPartialEq-for-CircuitBuilderStage) ### impl [StructuralPartialEq](https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html "trait core::marker::StructuralPartialEq") for [CircuitBuilderStage](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html "enum halo2_base::gates::builder::CircuitBuilderStage") Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#synthetic-implementations) -------------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-RefUnwindSafe-for-CircuitBuilderStage) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [CircuitBuilderStage](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html "enum halo2_base::gates::builder::CircuitBuilderStage") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-Send-for-CircuitBuilderStage) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [CircuitBuilderStage](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html "enum halo2_base::gates::builder::CircuitBuilderStage") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-Sync-for-CircuitBuilderStage) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [CircuitBuilderStage](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html "enum halo2_base::gates::builder::CircuitBuilderStage") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-Unpin-for-CircuitBuilderStage) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [CircuitBuilderStage](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html "enum halo2_base::gates::builder::CircuitBuilderStage") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-UnwindSafe-for-CircuitBuilderStage) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [CircuitBuilderStage](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html "enum halo2_base::gates::builder::CircuitBuilderStage") Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#blanket-implementations) --------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-Any-for-CircuitBuilderStage) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-Borrow%3CT%3E-for-CircuitBuilderStage) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-BorrowMut%3CT%3E-for-CircuitBuilderStage) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-Conv-for-CircuitBuilderStage) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-FmtForward-for-CircuitBuilderStage) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-From%3CT%3E-for-CircuitBuilderStage) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-Instrument-for-CircuitBuilderStage) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-Into%3CU%3E-for-CircuitBuilderStage) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-Pipe-for-CircuitBuilderStage) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-Pointable-for-CircuitBuilderStage) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-Same%3CT%3E-for-CircuitBuilderStage) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-Tap-for-CircuitBuilderStage) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-ToOwned-for-CircuitBuilderStage) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-TryConv-for-CircuitBuilderStage) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-TryFrom%3CU%3E-for-CircuitBuilderStage) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-TryInto%3CU%3E-for-CircuitBuilderStage) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-VZip%3CV%3E-for-CircuitBuilderStage) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#impl-WithSubscriber-for-CircuitBuilderStage) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # FlexGateConfig in halo2_base::gates::flex_gate - Rust Struct [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[flex\_gate](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/index.html) ::[FlexGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#92-103) · [\[−\]](javascript:void(0) "collapse all docs") pub struct FlexGateConfig { pub basic_gates: [Vec>; 3], pub constants: Vec>, pub num_advice: [usize; 3], pub max_rows: usize, /* private fields */ } Expand description Defines a configuration for a flex gate chip describing the selector, and advice column values for the chip. Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#fields) ---------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#structfield.basic_gates) `basic_gates: [[Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[BasicGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html "struct halo2_base::gates::flex_gate::BasicGateConfig") >; [3](https://doc.rust-lang.org/nightly/std/primitive.array.html) ]` A [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") of [BasicGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html "BasicGateConfig") that define gates for each halo2 phase. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#structfield.constants) `constants: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") >` A [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") of \[Fixed\] \[Column\]s for allocating constant values. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#structfield.num_advice) `num_advice: [[usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ; [3](https://doc.rust-lang.org/nightly/std/primitive.array.html) ]` Number of advice columns for each halo2 phase. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#structfield.max_rows) `max_rows: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ` Max number of rows in flex gate. Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#implementations) ---------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#105-154) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-FlexGateConfig%3CF%3E) ### impl [FlexGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html "struct halo2_base::gates::flex_gate::FlexGateConfig") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#114-153) #### pub fn [configure](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.configure) (     meta: &mut ConstraintSystem,     strategy: [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") ,     num\_advice: &\[[usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ \],     num\_fixed: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ,     circuit\_degree: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> Self Generates a new [FlexGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html "FlexGateConfig") Assumes `num_advice` is a [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") of length [MAX\_PHASE](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/constant.MAX_PHASE.html "MAX_PHASE") * `meta`: \[ConstraintSystem\] of the circuit * `strategy`: [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "GateStrategy") of the flex gate * `num_advice`: Number of \[Advice\] \[Column\]s in each phase * `num_fixed`: Number of \[Fixed\] \[Column\]s in each phase * `circuit_degree`: Degree that expresses the size of circuit (i.e., 2^circuit\_degree is the number of rows in the circuit) Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#trait-implementations) ---------------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-Clone-for-FlexGateConfig%3CF%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [FlexGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html "struct halo2_base::gates::flex_gate::FlexGateConfig") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [FlexGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html "struct halo2_base::gates::flex_gate::FlexGateConfig") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-Debug-for-FlexGateConfig%3CF%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [FlexGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html "struct halo2_base::gates::flex_gate::FlexGateConfig") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#synthetic-implementations) ------------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-RefUnwindSafe-for-FlexGateConfig%3CF%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [FlexGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html "struct halo2_base::gates::flex_gate::FlexGateConfig") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-Send-for-FlexGateConfig%3CF%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [FlexGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html "struct halo2_base::gates::flex_gate::FlexGateConfig") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-Sync-for-FlexGateConfig%3CF%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [FlexGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html "struct halo2_base::gates::flex_gate::FlexGateConfig") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-Unpin-for-FlexGateConfig%3CF%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [FlexGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html "struct halo2_base::gates::flex_gate::FlexGateConfig") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-UnwindSafe-for-FlexGateConfig%3CF%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [FlexGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html "struct halo2_base::gates::flex_gate::FlexGateConfig") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#blanket-implementations) -------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-Any-for-FlexGateConfig%3CF%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-Borrow%3CT%3E-for-FlexGateConfig%3CF%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-BorrowMut%3CT%3E-for-FlexGateConfig%3CF%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-Conv-for-FlexGateConfig%3CF%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-FmtForward-for-FlexGateConfig%3CF%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-From%3CT%3E-for-FlexGateConfig%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-Instrument-for-FlexGateConfig%3CF%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-Into%3CU%3E-for-FlexGateConfig%3CF%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-Pipe-for-FlexGateConfig%3CF%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-Pointable-for-FlexGateConfig%3CF%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-Same%3CT%3E-for-FlexGateConfig%3CF%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-Tap-for-FlexGateConfig%3CF%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-ToOwned-for-FlexGateConfig%3CF%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-TryConv-for-FlexGateConfig%3CF%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-TryFrom%3CU%3E-for-FlexGateConfig%3CF%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-TryInto%3CU%3E-for-FlexGateConfig%3CF%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-VZip%3CV%3E-for-FlexGateConfig%3CF%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#impl-WithSubscriber-for-FlexGateConfig%3CF%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # assign_threads_in in halo2_base::gates::builder - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[builder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/index.html) ::[assign\_threads\_in](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/fn.assign_threads_in.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#380-446) · [\[−\]](javascript:void(0) "collapse all docs") pub fn assign_threads_in(    phase: usize,    threads: Vec>,    config: &FlexGateConfig,    lookup_advice: &[Column],    region: &mut Region<'_, F>,    break_points: ThreadBreakPoints) Expand description Assigns threads to regions of advice column. Uses preprocessed `break_points` to assign where to divide the advice column into a new column for each thread. Performs only witness generation, so should only be evoked during proving not keygen. Assumes that the advice columns are already assigned. * `phase` - the phase of the circuit * `threads` - [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") threads to assign * `config` - immutable reference to the configuration of the circuit * `lookup_advice` - Slice of lookup advice columns * `region` - mutable reference to the region to assign threads to * `break_points` - the preprocessed break points for the threads --- # read_or_create_srs in halo2_base::utils::fs - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[fs](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fs/index.html) ::[read\_or\_create\_srs](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fs/fn.read_or_create_srs.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ==================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#371-393) · [\[−\]](javascript:void(0) "collapse all docs") pub fn read_or_create_srs<'a, C: CurveAffine, P: ParamsProver<'a, C>>(    k: u32,    setup: impl Fn(u32) -> P) -> P Expand description Attempts to read the srs from a file found in `./params/kzg_bn254_{k}.srs` or `{dir}/kzg_bn254_{k}.srs` if `PARAMS_DIR` env var is specified, creates a file it if it does not exist. * `k`: degree that expresses the size of circuit (i.e., 2^k is the number of rows in the circuit) * `setup`: a function that creates the srs --- # check_proof in halo2_base::utils::testing - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[testing](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/testing/index.html) ::[check\_proof](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/testing/fn.check_proof.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#441-463) · [\[−\]](javascript:void(0) "collapse all docs") pub fn check_proof(    params: &ParamsKZG,    vk: &VerifyingKey,    proof: &[u8],    expect_satisfied: bool) Expand description helper function to verify a proof --- # read_params in halo2_base::utils::fs - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[fs](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fs/index.html) ::[read\_params](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/fs/fn.read_params.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ==================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#359-366) · [\[−\]](javascript:void(0) "collapse all docs") pub fn read_params(k: u32) -> ParamsKZG Expand description Reads the srs from a file found in `./params/kzg_bn254_{k}.srs` or `{dir}/kzg_bn254_{k}.srs` if `PARAMS_DIR` env var is specified. * `k`: degree that expresses the size of circuit (i.e., 2^k is the number of rows in the circuit) --- # gen_proof in halo2_base::utils::testing - Rust Function [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[utils](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/index.html) ::[testing](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/testing/index.html) ::[gen\_proof](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/testing/fn.gen_proof.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =============================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/utils.rs.html#422-438) · [\[−\]](javascript:void(0) "collapse all docs") pub fn gen_proof(    params: &ParamsKZG,    pk: &ProvingKey,    circuit: impl Circuit) -> Vec Expand description helper function to generate a proof with real prover --- # MultiPhaseThreadBreakPoints in halo2_base::gates::builder - Rust Type Definition [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[builder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/index.html) ::[MultiPhaseThreadBreakPoints](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/type.MultiPhaseThreadBreakPoints.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#26) · [\[−\]](javascript:void(0) "collapse all docs") pub type MultiPhaseThreadBreakPoints = Vec; Expand description Vector of vectors tracking the thread break points across different halo2 phases --- # ThreadBreakPoints in halo2_base::gates::builder - Rust Type Definition [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[builder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/index.html) ::[ThreadBreakPoints](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/type.ThreadBreakPoints.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#24) · [\[−\]](javascript:void(0) "collapse all docs") pub type ThreadBreakPoints = Vec; Expand description Vector of thread advice column break points --- # GateStrategy in halo2_base::gates::flex_gate - Rust Enum [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[flex\_gate](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/index.html) ::[GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#24-33) · [\[−\]](javascript:void(0) "collapse all docs") pub enum GateStrategy { Vertical, } Expand description Specifies the gate strategy for the gate chip Variants[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#variants) ---------------------------------------------------------------------------------------------------------------- ### [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#variant.Vertical) `Vertical` #### [Vertical Gate Strategy:](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#vertical-gate-strategy) `q_0 * (a + b * c - d) = 0` where * a = value\[0\], b = value\[1\], c = value\[2\], d = value\[3\] * q = q\_enable\[0\] * q is either 0 or 1 so this is just a simple selector We chose `a + b * c` instead of `a * b + c` to allow “chaining” of gates, i.e., the output of one gate because `a` in the next gate. Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#trait-implementations) ------------------------------------------------------------------------------------------------------------------------------------------ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#23) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-Clone-for-GateStrategy) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#23) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#23) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-Debug-for-GateStrategy) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#23) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#23) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-Deserialize%3C%27de%3E-for-GateStrategy) ### impl<'de> [Deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html "trait serde::de::Deserialize") <'de> for [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#23) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.deserialize) #### fn [deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html#tymethod.deserialize) <\_\_D>(\_\_deserializer: \_\_D) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     \_\_D: [Deserializer](https://docs.rs/serde/1.0.163/serde/de/trait.Deserializer.html "trait serde::de::Deserializer") <'de>, Deserialize this value from the given Serde deserializer. [Read more](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html#tymethod.deserialize) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#23) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-PartialEq%3CGateStrategy%3E-for-GateStrategy) ### impl [PartialEq](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html "trait core::cmp::PartialEq") <[GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") \> for [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#23) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.eq) #### fn [eq](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq) (&self, other: &[GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") ) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests for `self` and `other` values to be equal, and is used by `==`. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#227) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.ne) #### fn [ne](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne) (&self, other: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Rhs) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests for `!=`. The default implementation is almost always sufficient, and should not be overridden without very good reason. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#23) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-Serialize-for-GateStrategy) ### impl [Serialize](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html "trait serde::ser::Serialize") for [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#23) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.serialize) #### fn [serialize](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html#tymethod.serialize) <\_\_S>(&self, \_\_serializer: \_\_S) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <\_\_S::[Ok](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html#associatedtype.Ok "type serde::ser::Serializer::Ok") , \_\_S::[Error](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html#associatedtype.Error "type serde::ser::Serializer::Error") \>where     \_\_S: [Serializer](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html "trait serde::ser::Serializer") , Serialize this value into the given Serde serializer. [Read more](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html#tymethod.serialize) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#23) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-Copy-for-GateStrategy) ### impl [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") for [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#23) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-StructuralPartialEq-for-GateStrategy) ### impl [StructuralPartialEq](https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html "trait core::marker::StructuralPartialEq") for [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#synthetic-implementations) --------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-RefUnwindSafe-for-GateStrategy) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-Send-for-GateStrategy) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-Sync-for-GateStrategy) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-Unpin-for-GateStrategy) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-UnwindSafe-for-GateStrategy) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#blanket-implementations) ---------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-Any-for-GateStrategy) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-Borrow%3CT%3E-for-GateStrategy) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-BorrowMut%3CT%3E-for-GateStrategy) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-Conv-for-GateStrategy) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-FmtForward-for-GateStrategy) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-From%3CT%3E-for-GateStrategy) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-Instrument-for-GateStrategy) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-Into%3CU%3E-for-GateStrategy) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-Pipe-for-GateStrategy) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-Pointable-for-GateStrategy) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-Same%3CT%3E-for-GateStrategy) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-Tap-for-GateStrategy) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-ToOwned-for-GateStrategy) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-TryConv-for-GateStrategy) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-TryFrom%3CU%3E-for-GateStrategy) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-TryInto%3CU%3E-for-GateStrategy) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-VZip%3CV%3E-for-GateStrategy) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-WithSubscriber-for-GateStrategy) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) [source](https://docs.rs/serde/1.0.163/src/serde/de/mod.rs.html#604) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html#impl-DeserializeOwned-for-GateStrategy) ### impl [DeserializeOwned](https://docs.rs/serde/1.0.163/serde/de/trait.DeserializeOwned.html "trait serde::de::DeserializeOwned") for Twhere     T: for<'de> [Deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html "trait serde::de::Deserialize") <'de>, --- # MAX_PHASE in halo2_base::gates::flex_gate - Rust Constant [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[flex\_gate](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/index.html) ::[MAX\_PHASE](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/constant.MAX_PHASE.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#20) · [\[−\]](javascript:void(0) "collapse all docs") pub const MAX_PHASE: usize = 3; Expand description The maximum number of phases in halo2. --- # RangeConfig in halo2_base::gates::range - Rust Struct [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[range](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/index.html) ::[RangeConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#40-59) · [\[−\]](javascript:void(0) "collapse all docs") pub struct RangeConfig { pub gate: FlexGateConfig, pub lookup_advice: [Vec>; 3], pub q_lookup: Vec>, pub lookup: TableColumn, /* private fields */ } Expand description Configuration for Range Chip Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#fields) --------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#structfield.gate) `gate: [FlexGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html "struct halo2_base::gates::flex_gate::FlexGateConfig") ` Underlying Gate Configuration [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#structfield.lookup_advice) `lookup_advice: [[Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") >; [3](https://doc.rust-lang.org/nightly/std/primitive.array.html) ]` Special advice (witness) Columns used only for lookup tables. Each phase of a halo2 circuit has a distinct lookup\_advice column. * If `gate` has only 1 advice column, lookups are enabled for that column, in which case `lookup_advice` is empty * If `gate` has more than 1 advice column some number of user-specified `lookup_advice` columns are added * In this case, we don’t need a selector so `q_lookup` is empty [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#structfield.q_lookup) `q_lookup: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") >` Selector values for the lookup table. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#structfield.lookup) `lookup: TableColumn` Column for lookup table values. Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#implementations) --------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#61-182) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-RangeConfig%3CF%3E) ### impl [RangeConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html "struct halo2_base::gates::range::RangeConfig") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#74-133) #### pub fn [configure](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.configure) (     meta: &mut ConstraintSystem,     range\_strategy: [RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html "enum halo2_base::gates::range::RangeStrategy") ,     num\_advice: &\[[usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ \],     num\_lookup\_advice: &\[[usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ \],     num\_fixed: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ,     lookup\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ,     circuit\_degree: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> Self Generates a new [RangeConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html "RangeConfig") with the specified parameters. If `num_columns` is 0, then we assume you do not want to perform any lookups in that phase. Panics if `lookup_bits` > 28. * `meta`: \[ConstraintSystem\] of the circuit * `range_strategy`: [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "GateStrategy") of the range chip * `num_advice`: Number of \[Advice\] \[Column\]s without lookup enabled in each phase * `num_lookup_advice`: Number of `lookup_advice` \[Column\]s in each phase * `num_fixed`: Number of fixed \[Column\]s in each phase * `lookup_bits`: Number of bits represented in the LookUp table \[0,2^lookup\_bits)\ * `circuit_degree`: Degree that expresses the size of circuit (i.e., 2^circuit\_degree is the number of rows in the circuit)\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#136-138)\ \ #### pub fn [lookup\_bits](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.lookup_bits)\ (&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ \ Returns the number of bits represented in the lookup table \[0,2^lookup\_bits).\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#165-181)\ \ #### pub fn [load\_lookup\_table](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.load_lookup_table)\ ( \     &self, \     layouter: &mut impl Layouter \ ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result")\ <[()](https://doc.rust-lang.org/nightly/std/primitive.unit.html)\ , Error>\ \ Loads the lookup table into the circuit using the provided `layouter`.\ \ * `layouter`: layouter for the circuit\ \ Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#trait-implementations)\ \ ---------------------------------------------------------------------------------------------------------------------------------------\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#39)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-Clone-for-RangeConfig%3CF%3E)\ \ ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone")\ for [RangeConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html "struct halo2_base::gates::range::RangeConfig")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#39)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.clone)\ \ #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone)\ (&self) -> [RangeConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html "struct halo2_base::gates::range::RangeConfig")\ \ \ Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone)\ \ 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.clone_from)\ \ #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from)\ (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)\ \ Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from)\ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#39)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-Debug-for-RangeConfig%3CF%3E)\ \ ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug")\ for [RangeConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html "struct halo2_base::gates::range::RangeConfig")\ \ \ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#39)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.fmt)\ \ #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt)\ (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter")\ <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result")\ \ Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt)\ \ Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#synthetic-implementations)\ \ ------------------------------------------------------------------------------------------------------------------------------------------------\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-RefUnwindSafe-for-RangeConfig%3CF%3E)\ \ ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe")\ for [RangeConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html "struct halo2_base::gates::range::RangeConfig")\ where \     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-Send-for-RangeConfig%3CF%3E)\ \ ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send")\ for [RangeConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html "struct halo2_base::gates::range::RangeConfig")\ \ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-Sync-for-RangeConfig%3CF%3E)\ \ ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync")\ for [RangeConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html "struct halo2_base::gates::range::RangeConfig")\ \ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-Unpin-for-RangeConfig%3CF%3E)\ \ ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin")\ for [RangeConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html "struct halo2_base::gates::range::RangeConfig")\ where \     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-UnwindSafe-for-RangeConfig%3CF%3E)\ \ ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe")\ for [RangeConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html "struct halo2_base::gates::range::RangeConfig")\ where \     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe")\ ,\ \ Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#blanket-implementations)\ \ -------------------------------------------------------------------------------------------------------------------------------------------\ \ [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-Any-for-RangeConfig%3CF%3E)\ \ ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any")\ for Twhere \     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.type_id)\ \ #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id)\ (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId")\ \ Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id)\ \ [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-Borrow%3CT%3E-for-RangeConfig%3CF%3E)\ \ ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow")\ for Twhere \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow")\ · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.borrow)\ \ #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow)\ (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T\ \ Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow)\ \ [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-BorrowMut%3CT%3E-for-RangeConfig%3CF%3E)\ \ ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut")\ for Twhere \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow")\ · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.borrow_mut)\ \ #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut)\ (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T\ \ Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut)\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-Conv-for-RangeConfig%3CF%3E)\ \ ### impl Conv for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.conv)\ \ #### fn conv(self) -> Twhere \     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ ,\ \ Converts `self` into `T` using `Into`. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-FmtForward-for-RangeConfig%3CF%3E)\ \ ### impl FmtForward for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.fmt_binary)\ \ #### fn fmt\_binary(self) -> FmtBinarywhere \     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary")\ ,\ \ Causes `self` to use its `Binary` implementation when `Debug`\-formatted.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.fmt_display)\ \ #### fn fmt\_display(self) -> FmtDisplaywhere \     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display")\ ,\ \ Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.fmt_lower_exp)\ \ #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere \     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp")\ ,\ \ Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.fmt_lower_hex)\ \ #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere \     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex")\ ,\ \ Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.fmt_octal)\ \ #### fn fmt\_octal(self) -> FmtOctalwhere \     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal")\ ,\ \ Causes `self` to use its `Octal` implementation when `Debug`\-formatted.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.fmt_pointer)\ \ #### fn fmt\_pointer(self) -> FmtPointerwhere \     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer")\ ,\ \ Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.fmt_upper_exp)\ \ #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere \     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp")\ ,\ \ Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.fmt_upper_hex)\ \ #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere \     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex")\ ,\ \ Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.fmt_list)\ \ #### fn fmt\_list(self) -> FmtListwhere \     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator")\ ,\ \ Formats each item in a sequence. Read more\ \ [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-From%3CT%3E-for-RangeConfig%3CF%3E)\ \ ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From")\ for T\ \ const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert")\ · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.from)\ \ #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from)\ (t: T) -> T\ \ Returns the argument unchanged.\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-Instrument-for-RangeConfig%3CF%3E)\ \ ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument")\ for T\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.instrument)\ \ #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument)\ (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span")\ ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented")\ \ \ Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span")\ , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument)\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.in_current_span)\ \ #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span)\ (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented")\ \ \ Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current)\ [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html)\ , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span)\ \ [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-Into%3CU%3E-for-RangeConfig%3CF%3E)\ \ ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ for Twhere \     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From")\ ,\ \ const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert")\ · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.into)\ \ #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into)\ (self) -> U\ \ Calls `U::from(self)`.\ \ That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-Pipe-for-RangeConfig%3CF%3E)\ \ ### impl Pipe for Twhere \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.pipe)\ \ #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ (Self) -> R) -> Rwhere \     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Pipes by value. This is generally the method you want to use. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.pipe_ref)\ \ #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self) -> R) -> Rwhere \     R: 'a,\ \ Borrows `self` and passes that borrow into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.pipe_ref_mut)\ \ #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self) -> R) -> Rwhere \     R: 'a,\ \ Mutably borrows `self` and passes that borrow into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.pipe_borrow)\ \ #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B) -> R) -> Rwhere \     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow")\ , \     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Borrows `self`, then passes `self.borrow()` into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.pipe_borrow_mut)\ \ #### fn pipe\_borrow\_mut<'a, B, R>( \     &'a mut self, \     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B) -> R \ ) -> Rwhere \     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut")\ , \     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.pipe_as_ref)\ \ #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ U) -> R) -> Rwhere \     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef")\ , \     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Borrows `self`, then passes `self.as_ref()` into the pipe function.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.pipe_as_mut)\ \ #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ U) -> R) -> Rwhere \     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut")\ , \     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.pipe_deref)\ \ #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T) -> R) -> Rwhere \     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Borrows `self`, then passes `self.deref()` into the pipe function.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.pipe_deref_mut)\ \ #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T) -> R) -> Rwhere \     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut")\ + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ , \     R: 'a,\ \ Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-Pointable-for-RangeConfig%3CF%3E)\ \ ### impl Pointable for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#associatedconstant.ALIGN)\ \ #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ = mem::align\_of::()\ \ The alignment of pointer.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#associatedtype.Init)\ \ #### type Init = T\ \ The type for initializers.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.init)\ \ #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ \ Initializes a with the given initializer. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.deref)\ \ #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T\ \ Dereferences the given pointer. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.deref_mut)\ \ #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T\ \ Mutably dereferences the given pointer. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.drop)\ \ #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html)\ )\ \ Drops the object pointed to by the given pointer. Read more\ \ [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-Same%3CT%3E-for-RangeConfig%3CF%3E)\ \ ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same")\ for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#associatedtype.Output)\ \ #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output)\ = T\ \ Should always be `Self`\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-Tap-for-RangeConfig%3CF%3E)\ \ ### impl Tap for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.tap)\ \ #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)) -> Self\ \ Immutable access to a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.tap_mut)\ \ #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)) -> Self\ \ Mutable access to a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.tap_borrow)\ \ #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B)) -> Selfwhere \     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow")\ , \     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Immutable access to the `Borrow` of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.tap_borrow_mut)\ \ #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B)) -> Selfwhere \     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut")\ , \     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Mutable access to the `BorrowMut` of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.tap_ref)\ \ #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ R)) -> Selfwhere \     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef")\ , \     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Immutable access to the `AsRef` view of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.tap_ref_mut)\ \ #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ R)) -> Selfwhere \     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut")\ , \     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Mutable access to the `AsMut` view of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.tap_deref)\ \ #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)) -> Selfwhere \     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Immutable access to the `Deref::Target` of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.tap_deref_mut)\ \ #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)) -> Selfwhere \     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut")\ + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Mutable access to the `Deref::Target` of a value. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.tap_dbg)\ \ #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)) -> Self\ \ Calls `.tap()` only in debug builds, and is erased in release builds.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.tap_mut_dbg)\ \ #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ Self)) -> Self\ \ Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.tap_borrow_dbg)\ \ #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B)) -> Selfwhere \     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow")\ , \     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.tap_borrow_mut_dbg)\ \ #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ B)) -> Selfwhere \     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut")\ , \     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.tap_ref_dbg)\ \ #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ R)) -> Selfwhere \     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef")\ , \     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.tap_ref_mut_dbg)\ \ #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ R)) -> Selfwhere \     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut")\ , \     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.tap_deref_dbg)\ \ #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)) -> Selfwhere \     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.tap_deref_mut_dbg)\ \ #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce")\ ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)) -> Selfwhere \     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut")\ + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref")\ , \     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized")\ ,\ \ Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more\ \ [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-ToOwned-for-RangeConfig%3CF%3E)\ \ ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned")\ for Twhere \     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#associatedtype.Owned)\ \ #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned)\ = T\ \ The resulting type after obtaining ownership.\ \ [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.to_owned)\ \ #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned)\ (&self) -> T\ \ Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned)\ \ [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.clone_into)\ \ #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into)\ (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html)\ T)\ \ Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into)\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-TryConv-for-RangeConfig%3CF%3E)\ \ ### impl TryConv for T\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.try_conv)\ \ #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result")\ where \     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto")\ ,\ \ Attempts to convert `self` into `T` using `TryInto`. Read more\ \ [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-TryFrom%3CU%3E-for-RangeConfig%3CF%3E)\ \ ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom")\ for Twhere \     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#associatedtype.Error-1)\ \ #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error)\ = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible")\ \ The type returned in the event of a conversion error.\ \ const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert")\ · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.try_from)\ \ #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from)\ (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result")\ >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error")\ \>\ \ Performs the conversion.\ \ [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-TryInto%3CU%3E-for-RangeConfig%3CF%3E)\ \ ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto")\ for Twhere \     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom")\ ,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#associatedtype.Error)\ \ #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error)\ = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error")\ \ The type returned in the event of a conversion error.\ \ const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert")\ · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.try_into)\ \ #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into)\ (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result")\ >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error")\ \>\ \ Performs the conversion.\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-VZip%3CV%3E-for-RangeConfig%3CF%3E)\ \ ### impl VZip for Twhere \     V: MultiLane,\ \ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.vzip)\ \ #### fn vzip(self) -> V\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#impl-WithSubscriber-for-RangeConfig%3CF%3E)\ \ ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber")\ for T\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.with_subscriber)\ \ #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber)\ (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch")\ where \     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into")\ ,\ \ Attaches the provided [`Subscriber`](super::Subscriber)\ to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch")\ wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber)\ \ [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221)\ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html#method.with_current_subscriber)\ \ #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber)\ (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch")\ \ \ Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber)\ [`Subscriber`](super::Subscriber)\ to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch")\ wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # GateChip in halo2_base::gates::flex_gate - Rust Struct [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[flex\_gate](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/index.html) ::[GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ===================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#871-878) · [\[−\]](javascript:void(0) "collapse all docs") pub struct GateChip { pub pow_of_two: Vec, pub field_element_cache: Vec, /* private fields */ } Expand description A chip that implements the [GateInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html "GateInstructions") trait supporting basic arithmetic operations. Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#fields) ---------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#structfield.pow_of_two) `pow_of_two: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") ` The field elements 2^i for i in 0..F::NUM\_BITS. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#structfield.field_element_cache) `field_element_cache: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") ` To avoid Montgomery conversion in `F::from` for common small numbers, we keep a cache of field elements. Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#implementations) ---------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#886-971) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-GateChip%3CF%3E) ### impl [GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "struct halo2_base::gates::flex_gate::GateChip") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#888-899) #### pub fn [new](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.new) (strategy: [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") ) -> Self Returns a new [GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "GateChip") with the given [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "GateStrategy") . Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#trait-implementations) ---------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#870) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-Clone-for-GateChip%3CF%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "struct halo2_base::gates::flex_gate::GateChip") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#870) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "struct halo2_base::gates::flex_gate::GateChip") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#870) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-Debug-for-GateChip%3CF%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "struct halo2_base::gates::flex_gate::GateChip") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#870) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#880-884) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-Default-for-GateChip%3CF%3E) ### impl [Default](https://doc.rust-lang.org/nightly/core/default/trait.Default.html "trait core::default::Default") for [GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "struct halo2_base::gates::flex_gate::GateChip") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#881-883) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.default) #### fn [default](https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default) () -> Self Returns the “default value” for a type. [Read more](https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#973-1237) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-GateInstructions%3CF%3E-for-GateChip%3CF%3E) ### impl [GateInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html "trait halo2_base::gates::flex_gate::GateInstructions") for [GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "struct halo2_base::gates::flex_gate::GateChip") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#975-977) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.strategy) #### fn [strategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.strategy) (&self) -> [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "enum halo2_base::gates::flex_gate::GateStrategy") Returns the [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "GateStrategy") the [GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "GateChip") . [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#980-982) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.pow_of_two) #### fn [pow\_of\_two](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.pow_of_two) (&self) -> &[\[F\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) ⓘNotable traits for &mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]`impl [Write](https://doc.rust-lang.org/nightly/std/io/trait.Write.html "trait std::io::Write") for &mut [[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]impl [Read](https://doc.rust-lang.org/nightly/std/io/trait.Read.html "trait std::io::Read") for &[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]` Returns a slice of the [ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html "ScalarField") elements 2i for i in 0..F::NUM\_BITS. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#986-993) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.get_field_element) #### fn [get\_field\_element](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.get_field_element) (&self, n: [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) ) -> F Returns the the value of `n` as a [ScalarField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/trait.ScalarField.html "ScalarField") element. * `n`: the [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html "u64") value to convert [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#1001-1012) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.inner_product) #### fn [inner\_product](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.inner_product) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     b: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") where     QA: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >, Constrains and returns the inner product of ``. Assumes ‘a’ and ‘b’ are the same length. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: Iterator of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") values * `b`: Iterator of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") values to take inner product of `a` by [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#1020-1044) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.inner_product_left_last) #### fn [inner\_product\_left\_last](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.inner_product_left_last) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     b: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") > ) -> ([AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") , [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") )where     QA: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >, Returns the inner product of `` and returns a tuple of the last item of `a` after it is assigned and the item to its left `(left_a, last_a)`. Assumes ‘a’ and ‘b’ are the same length. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") of the circuit * `a`: Iterator of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") s * `b`: Iterator of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") s to take inner product of `a` by [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#1054-1071) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.inner_product_with_sums) #### fn [inner\_product\_with\_sums](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.inner_product_with_sums) <'thread, QA>(     &self,     ctx: &'thread mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     b: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") > ) -> [Box](https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html "struct alloc::boxed::Box") > + 'thread>where     QA: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >, Calculates and constrains the inner product. Returns the assignment trace where `output[i]` has the running sum `sum_{j=0..=i} a[j] * b[j]`. Assumes ‘a’ and ‘b’ are the same length. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: Iterator of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") values * `b`: Iterator of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") values to calculate the partial sums of the inner product of `a` by [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#1078-1103) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.sum_products_with_coeff_and_var) #### fn [sum\_products\_with\_coeff\_and\_var](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.sum_products_with_coeff_and_var) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     values: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") )>,     var: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns the sum of products of `coeff * (a * b)` defined in `values` plus a variable `var` e.g. `x = var + values[0].0 * (values[0].1 * values[0].2) + values[1].0 * (values[1].1 * values[1].2) + ... + values[n].0 * (values[n].1 * values[n].2)`. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `values`: Iterator of tuples `(coeff, a, b)` where `coeff` is a field element, `a` and `b` are [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") ’s * `var`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that represents the value of a variable added to the sum [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#1112-1142) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.select) #### fn [select](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.select) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     sel: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `sel ? a : b` assuming `sel` is boolean. Defines a vertical gate of form `| 1 - sel | sel | 1 | a | 1 - sel | sel | 1 | b | out |`, where out = sel \* a + (1 - sel) \* b. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that contains a boolean value * `b`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that contains a boolean value * `sel`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that contains a boolean value [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#1151-1180) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.or_and) #### fn [or\_and](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.or_and) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     c: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constains and returns `a || (b && c)`, assuming `a`, `b` and `c` are boolean. Defines a vertical gate of form `| 1 - b c | b | c | 1 | a - 1 | 1 - b c | out | a - 1 | 1 | 1 | a |`, where out = a + b \* c - a \* b \* c. * `ctx`: [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") to add the constraints to * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that contains a boolean value * `b`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that contains a boolean value * `c`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") that contains a boolean value [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#1187-1213) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.num_to_bits) #### fn [num\_to\_bits](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.num_to_bits) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ,     range\_bits: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") > Constrains and returns little-endian bit vector representation of `a`. Assumes `range_bits >= number of bits in a`. * `a`: [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") of the value to convert * `range_bits`: range of bits needed to represent `a`. Assumes `range_bits > 0`. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#1215-1224) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.const_right_rotate_unsafe) #### fn [const\_right\_rotate\_unsafe](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.const_right_rotate_unsafe) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Bitwise right rotate a by BIT bits. BIT and NUM\_BITS must be determined at compile time. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.const_right_rotate_unsafe) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#1226-1236) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.const_left_rotate_unsafe) #### fn [const\_left\_rotate\_unsafe](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.const_left_rotate_unsafe) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Bitwise left rotate a by BIT bits. BIT and NUM\_BITS must be determined at compile time. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#tymethod.const_left_rotate_unsafe) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#173-183) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.add) #### fn [add](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.add) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `a + b * 1 = out`. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.add) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#191-203) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.sub) #### fn [sub](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.sub) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `a + b * (-1) = out`. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.sub) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#210-215) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.neg) #### fn [neg](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.neg) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `a * (-1) = out`. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.neg) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#223-233) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.mul) #### fn [mul](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.mul) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `0 + a * b = out`. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.mul) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#242-254) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.mul_add) #### fn [mul\_add](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.mul_add) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     c: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `a * b + c = out`. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.mul_add) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#262-273) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.mul_not) #### fn [mul\_not](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.mul_not) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `(1 - a) * b = b - a * b`. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.mul_not) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#280-282) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.assert_bit) #### fn [assert\_bit](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.assert_bit) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , x: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) Constrains that x is boolean (e.g. 0 or 1). [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.assert_bit) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#292-305) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.div_unsafe) #### fn [div\_unsafe](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.div_unsafe) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns a / b = 0. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.div_unsafe) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#311-315) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.assert_is_const) #### fn [assert\_is\_const](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.assert_is_const) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , a: &[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") , constant: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) F) Constrains that `a` is equal to `constant` value. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.assert_is_const) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#367-390) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.sum) #### fn [sum](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.sum) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") where     Q: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >, Constrains and returns the sum of [QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "QuantumCell") ’s in iterator `a`. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.sum) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#397-425) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.partial_sums) #### fn [partial\_sums](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.partial_sums) <'thread, Q>(     &self,     ctx: &'thread mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ) -> [Box](https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html "struct alloc::boxed::Box") > + 'thread>where     Q: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >, Calculates and constrains the sum of the elements of `a`. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.partial_sums) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#438-460) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.accumulated_product) #### fn [accumulated\_product](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.accumulated_product) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     b: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") >where     QA: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     QB: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >, Calculates and constrains the accumulated product of ‘a’ and ‘b’ i.e. `x_i = b_1 * (a_1...a_{i - 1}) + b_2 * (a_2...a_{i - 1}) + ... + b_i` [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.accumulated_product) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#480-502) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.or) #### fn [or](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.or) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `a || b`, assuming `a` and `b` are boolean. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.or) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#510-517) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.and) #### fn [and](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.and) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `a & b`, assumeing `a` and `b` are boolean. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.and) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#525-547) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.xor) #### fn [xor](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.xor) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `a ^ b`, assuming `a` and `b` are boolean. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.xor) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#554-556) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.not) #### fn [not](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.not) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains and returns `!a` assumeing `a` is boolean. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.not) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#594-641) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.bits_to_indicator) #### fn [bits\_to\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.bits_to_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     bits: &\[[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ \] ) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") > Constrains and returns an indicator vector from a slice of boolean values, where `output[idx] = 1` iff idx = (the number represented by `bits` in binary little endian), otherwise `output[idx] = 0`. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.bits_to_indicator) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#649-685) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.idx_to_indicator) #### fn [idx\_to\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.idx_to_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     idx: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     len: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") > Constrains and returns a [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "Vec") `indicator` of length `len`, where `indicator[i] == 1 if i == idx otherwise 0`, if `idx >= len` then `indicator` is all zeros. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.idx_to_indicator) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#694-716) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.select_by_indicator) #### fn [select\_by\_indicator](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.select_by_indicator) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     indicator: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") where     Q: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >, Constrains the inner product of `a` and `indicator` and returns `a[idx]` (e.g. the value of `a` at `idx`). [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.select_by_indicator) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#724-739) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.select_from_idx) #### fn [select\_from\_idx](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.select_from_idx) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     cells: impl [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") ,     idx: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") where     Q: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >, Constrains and returns `cells[idx]` if `idx < cells.len()`, otherwise return 0. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.select_from_idx) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#746-766) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.is_zero) #### fn [is\_zero](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.is_zero) (&self, ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") , a: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains that a cell is equal to 0 and returns `1` if `a = 0`, otherwise `0`. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.is_zero) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#772-780) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.is_equal) #### fn [is\_equal](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.is_equal) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     a: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") >,     b: impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[QuantumCell](https://axiom-crypto.github.io/halo2-lib/halo2_base/enum.QuantumCell.html "enum halo2_base::QuantumCell") > ) -> [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") Constrains that the value of two cells are equal: b - a = 0, returns `1` if `a = b`, otherwise `0`. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.is_equal) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#806-844) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.lagrange_and_eval) #### fn [lagrange\_and\_eval](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.lagrange_and_eval) (     &self,     ctx: &mut [Context](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "struct halo2_base::Context") ,     coords: &\[([AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ , [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue")\ )\],     x: [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) -> ([AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") , [AssignedValue](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.AssignedValue.html "struct halo2_base::AssignedValue") ) Performs and constrains Lagrange interpolation on `coords` and evaluates the resulting polynomial at `x`. [Read more](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html#method.lagrange_and_eval) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#synthetic-implementations) ------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-RefUnwindSafe-for-GateChip%3CF%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "struct halo2_base::gates::flex_gate::GateChip") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-Send-for-GateChip%3CF%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "struct halo2_base::gates::flex_gate::GateChip") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-Sync-for-GateChip%3CF%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "struct halo2_base::gates::flex_gate::GateChip") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-Unpin-for-GateChip%3CF%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "struct halo2_base::gates::flex_gate::GateChip") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-UnwindSafe-for-GateChip%3CF%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "struct halo2_base::gates::flex_gate::GateChip") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#blanket-implementations) -------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-Any-for-GateChip%3CF%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-Borrow%3CT%3E-for-GateChip%3CF%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-BorrowMut%3CT%3E-for-GateChip%3CF%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-Conv-for-GateChip%3CF%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-FmtForward-for-GateChip%3CF%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-From%3CT%3E-for-GateChip%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-Instrument-for-GateChip%3CF%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-Into%3CU%3E-for-GateChip%3CF%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-Pipe-for-GateChip%3CF%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-Pointable-for-GateChip%3CF%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-Same%3CT%3E-for-GateChip%3CF%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-Tap-for-GateChip%3CF%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-ToOwned-for-GateChip%3CF%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-TryConv-for-GateChip%3CF%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-TryFrom%3CU%3E-for-GateChip%3CF%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-TryInto%3CU%3E-for-GateChip%3CF%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-VZip%3CV%3E-for-GateChip%3CF%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#impl-WithSubscriber-for-GateChip%3CF%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # RangeStrategy in halo2_base::gates::range - Rust Enum [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[range](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/index.html) ::[RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#26-36) · [\[−\]](javascript:void(0) "collapse all docs") pub enum RangeStrategy { Vertical, } Expand description Specifies the gate strategy for the range chip Variants[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#variants) ------------------------------------------------------------------------------------------------------------- ### [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#variant.Vertical) `Vertical` #### [Vertical Gate Strategy:](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#vertical-gate-strategy) `q_0 * (a + b * c - d) = 0` where * a = value\[0\], b = value\[1\], c = value\[2\], d = value\[3\] * q = q\_lookup\[0\] * q is either 0 or 1 so this is just a simple selector Using `a + b * c` instead of `a * b + c` allows for “chaining” of gates, i.e., the output of one gate becomes `a` in the next gate. Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#trait-implementations) --------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#25) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-Clone-for-RangeStrategy) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html "enum halo2_base::gates::range::RangeStrategy") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#25) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html "enum halo2_base::gates::range::RangeStrategy") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#25) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-Debug-for-RangeStrategy) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html "enum halo2_base::gates::range::RangeStrategy") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#25) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#25) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-PartialEq%3CRangeStrategy%3E-for-RangeStrategy) ### impl [PartialEq](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html "trait core::cmp::PartialEq") <[RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html "enum halo2_base::gates::range::RangeStrategy") \> for [RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html "enum halo2_base::gates::range::RangeStrategy") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#25) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.eq) #### fn [eq](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq) (&self, other: &[RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html "enum halo2_base::gates::range::RangeStrategy") ) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests for `self` and `other` values to be equal, and is used by `==`. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#227) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.ne) #### fn [ne](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne) (&self, other: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Rhs) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests for `!=`. The default implementation is almost always sufficient, and should not be overridden without very good reason. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#25) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-Copy-for-RangeStrategy) ### impl [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") for [RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html "enum halo2_base::gates::range::RangeStrategy") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#25) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-StructuralPartialEq-for-RangeStrategy) ### impl [StructuralPartialEq](https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html "trait core::marker::StructuralPartialEq") for [RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html "enum halo2_base::gates::range::RangeStrategy") Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#synthetic-implementations) ------------------------------------------------------------------------------------------------------------------------------------------------ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-RefUnwindSafe-for-RangeStrategy) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html "enum halo2_base::gates::range::RangeStrategy") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-Send-for-RangeStrategy) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html "enum halo2_base::gates::range::RangeStrategy") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-Sync-for-RangeStrategy) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html "enum halo2_base::gates::range::RangeStrategy") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-Unpin-for-RangeStrategy) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html "enum halo2_base::gates::range::RangeStrategy") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-UnwindSafe-for-RangeStrategy) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html "enum halo2_base::gates::range::RangeStrategy") Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#blanket-implementations) ------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-Any-for-RangeStrategy) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-Borrow%3CT%3E-for-RangeStrategy) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-BorrowMut%3CT%3E-for-RangeStrategy) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-Conv-for-RangeStrategy) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-FmtForward-for-RangeStrategy) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-From%3CT%3E-for-RangeStrategy) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-Instrument-for-RangeStrategy) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-Into%3CU%3E-for-RangeStrategy) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-Pipe-for-RangeStrategy) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-Pointable-for-RangeStrategy) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-Same%3CT%3E-for-RangeStrategy) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-Tap-for-RangeStrategy) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-ToOwned-for-RangeStrategy) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-TryConv-for-RangeStrategy) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-TryFrom%3CU%3E-for-RangeStrategy) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-TryInto%3CU%3E-for-RangeStrategy) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-VZip%3CV%3E-for-RangeStrategy) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#impl-WithSubscriber-for-RangeStrategy) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # GateCircuitBuilder in halo2_base::gates::builder - Rust Struct [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[builder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/index.html) ::[GateCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#465-470) · [\[−\]](javascript:void(0) "collapse all docs") pub struct GateCircuitBuilder { pub builder: RefCell>, pub break_points: RefCell, } Expand description A wrapper struct to auto-build a circuit from a `GateThreadBuilder`. Fields[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#fields) ------------------------------------------------------------------------------------------------------------------ [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#structfield.builder) `builder: [RefCell](https://doc.rust-lang.org/nightly/core/cell/struct.RefCell.html "struct core::cell::RefCell") <[GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") >` The Thread Builder for the circuit [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#structfield.break_points) `break_points: [RefCell](https://doc.rust-lang.org/nightly/core/cell/struct.RefCell.html "struct core::cell::RefCell") <[MultiPhaseThreadBreakPoints](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/type.MultiPhaseThreadBreakPoints.html "type halo2_base::gates::builder::MultiPhaseThreadBreakPoints") >` Break points for threads within the circuit Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#implementations) ------------------------------------------------------------------------------------------------------------------------------------ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#472-556) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-GateCircuitBuilder%3CF%3E) ### impl [GateCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html "struct halo2_base::gates::builder::GateCircuitBuilder") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#474-476) #### pub fn [keygen](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.keygen) (builder: [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") ) -> Self Creates a new [GateCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html "GateCircuitBuilder") with `use_unknown` of [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "GateThreadBuilder") set to true. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#479-481) #### pub fn [mock](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.mock) (builder: [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") ) -> Self Creates a new [GateCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html "GateCircuitBuilder") with `use_unknown` of [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "GateThreadBuilder") set to false. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#484-489) #### pub fn [prover](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.prover) (     builder: [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "struct halo2_base::gates::builder::GateThreadBuilder") ,     break\_points: [MultiPhaseThreadBreakPoints](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/type.MultiPhaseThreadBreakPoints.html "type halo2_base::gates::builder::MultiPhaseThreadBreakPoints") ) -> Self Creates a new [GateCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html "GateCircuitBuilder") . [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#492-555) #### pub fn [sub\_synthesize](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.sub_synthesize) (     &self,     gate: &[FlexGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html "struct halo2_base::gates::flex_gate::FlexGateConfig") ,     lookup\_advice: &\[[Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec")\ >\],     q\_lookup: &\[[Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option")\ \],     layouter: &mut impl Layouter ) -> [HashMap](https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html "struct std::collections::hash::map::HashMap") <([usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) , [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ), (Cell, [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) )> Synthesizes from the [GateCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html "GateCircuitBuilder") by populating the advice column and assigning new threads if witness generation is performed. Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#trait-implementations) ------------------------------------------------------------------------------------------------------------------------------------------------ [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#558-588) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-Circuit%3CF%3E-for-GateCircuitBuilder%3CF%3E) ### impl Circuit for [GateCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html "struct halo2_base::gates::builder::GateCircuitBuilder") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#563-565) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.without_witnesses) #### fn without\_witnesses(&self) -> Self Creates a new instance of the circuit without withnesses filled in. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#568-577) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.configure) #### fn configure(meta: &mut ConstraintSystem) -> [FlexGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html "struct halo2_base::gates::flex_gate::FlexGateConfig") Configures a new circuit using the the parameters specified \[Config\]. [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#580-587) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.synthesize) #### fn synthesize(     &self,     config: Self::Config,     layouter: impl Layouter ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[()](https://doc.rust-lang.org/nightly/std/primitive.unit.html) , Error> Performs the actual computation on the circuit (e.g., witness generation), filling in all the advice values for a particular proof. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#associatedtype.Config) #### type Config = [FlexGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html "struct halo2_base::gates::flex_gate::FlexGateConfig") This is a configuration object that stores things like columns. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#associatedtype.FloorPlanner) #### type FloorPlanner = SimpleFloorPlanner The floor planner used for this circuit. This is an associated type of the `Circuit` trait because its behaviour is circuit-critical. Read more [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#464) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-Clone-for-GateCircuitBuilder%3CF%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [GateCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html "struct halo2_base::gates::builder::GateCircuitBuilder") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#464) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [GateCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html "struct halo2_base::gates::builder::GateCircuitBuilder") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#464) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-Debug-for-GateCircuitBuilder%3CF%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [GateCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html "struct halo2_base::gates::builder::GateCircuitBuilder") [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#464) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#synthetic-implementations) --------------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-RefUnwindSafe-for-GateCircuitBuilder%3CF%3E) ### impl ![RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [GateCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html "struct halo2_base::gates::builder::GateCircuitBuilder") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-Send-for-GateCircuitBuilder%3CF%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [GateCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html "struct halo2_base::gates::builder::GateCircuitBuilder") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-Sync-for-GateCircuitBuilder%3CF%3E) ### impl ![Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [GateCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html "struct halo2_base::gates::builder::GateCircuitBuilder") [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-Unpin-for-GateCircuitBuilder%3CF%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [GateCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html "struct halo2_base::gates::builder::GateCircuitBuilder") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-UnwindSafe-for-GateCircuitBuilder%3CF%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [GateCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html "struct halo2_base::gates::builder::GateCircuitBuilder") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#blanket-implementations) ---------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-Any-for-GateCircuitBuilder%3CF%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-Borrow%3CT%3E-for-GateCircuitBuilder%3CF%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-BorrowMut%3CT%3E-for-GateCircuitBuilder%3CF%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-Conv-for-GateCircuitBuilder%3CF%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-FmtForward-for-GateCircuitBuilder%3CF%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-From%3CT%3E-for-GateCircuitBuilder%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-Instrument-for-GateCircuitBuilder%3CF%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-Into%3CU%3E-for-GateCircuitBuilder%3CF%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-Pipe-for-GateCircuitBuilder%3CF%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-Pointable-for-GateCircuitBuilder%3CF%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-Same%3CT%3E-for-GateCircuitBuilder%3CF%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-Tap-for-GateCircuitBuilder%3CF%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-ToOwned-for-GateCircuitBuilder%3CF%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-TryConv-for-GateCircuitBuilder%3CF%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-TryFrom%3CU%3E-for-GateCircuitBuilder%3CF%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-TryInto%3CU%3E-for-GateCircuitBuilder%3CF%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-VZip%3CV%3E-for-GateCircuitBuilder%3CF%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#impl-WithSubscriber-for-GateCircuitBuilder%3CF%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # halo2_base::gates::builder - Rust Module [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[builder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/builder.rs.html#1-796) · [\[−\]](javascript:void(0) "collapse all docs") Expand description Module that helps auto-build circuits [Structs](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/index.html#structs) ------------------------------------------------------------------------------------------------ [FlexGateConfigParams](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.FlexGateConfigParams.html "halo2_base::gates::builder::FlexGateConfigParams struct") A Config struct defining the parameters for a FlexGate circuit. [GateCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateCircuitBuilder.html "halo2_base::gates::builder::GateCircuitBuilder struct") A wrapper struct to auto-build a circuit from a `GateThreadBuilder`. [GateThreadBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.GateThreadBuilder.html "halo2_base::gates::builder::GateThreadBuilder struct") Builds the process for gate threading [KeygenAssignments](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.KeygenAssignments.html "halo2_base::gates::builder::KeygenAssignments struct") Stores the cell values loaded during the Keygen phase of a halo2 proof and breakpoints for multi-threading [RangeCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html "halo2_base::gates::builder::RangeCircuitBuilder struct") A wrapper struct to auto-build a circuit from a `GateThreadBuilder`. [RangeWithInstanceCircuitBuilder](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceCircuitBuilder.html "halo2_base::gates::builder::RangeWithInstanceCircuitBuilder struct") This is an extension of [`RangeCircuitBuilder`](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeCircuitBuilder.html "RangeCircuitBuilder") that adds support for public instances (aka public inputs+outputs) [RangeWithInstanceConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/struct.RangeWithInstanceConfig.html "halo2_base::gates::builder::RangeWithInstanceConfig struct") Configuration with [`RangeConfig`](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html "RangeConfig") and a single public instance column. [Enums](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/index.html#enums) -------------------------------------------------------------------------------------------- [CircuitBuilderStage](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/enum.CircuitBuilderStage.html "halo2_base::gates::builder::CircuitBuilderStage enum") Defines stage of the circuit builder. [Functions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/index.html#functions) ---------------------------------------------------------------------------------------------------- [assign\_threads\_in](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/fn.assign_threads_in.html "halo2_base::gates::builder::assign_threads_in fn") Assigns threads to regions of advice column. [parallelize\_in](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/fn.parallelize_in.html "halo2_base::gates::builder::parallelize_in fn") Utility function to parallelize an operation involving [`Context`](https://axiom-crypto.github.io/halo2-lib/halo2_base/struct.Context.html "Context") s in phase `phase`. [Type Definitions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/index.html#types) ------------------------------------------------------------------------------------------------------- [MultiPhaseThreadBreakPoints](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/type.MultiPhaseThreadBreakPoints.html "halo2_base::gates::builder::MultiPhaseThreadBreakPoints type") Vector of vectors tracking the thread break points across different halo2 phases [ThreadBreakPoints](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/builder/type.ThreadBreakPoints.html "halo2_base::gates::builder::ThreadBreakPoints type") Vector of thread advice column break points --- # halo2_base::gates::flex_gate - Rust Module [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[flex\_gate](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/flex_gate.rs.html#1-1237) · [\[−\]](javascript:void(0) "collapse all docs") Expand description Module implementing our simple custom gate and common functions using it [Structs](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/index.html#structs) -------------------------------------------------------------------------------------------------- [BasicGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.BasicGateConfig.html "halo2_base::gates::flex_gate::BasicGateConfig struct") A configuration for a basic gate chip describing the selector, and advice column values. [FlexGateConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.FlexGateConfig.html "halo2_base::gates::flex_gate::FlexGateConfig struct") Defines a configuration for a flex gate chip describing the selector, and advice column values for the chip. [GateChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/struct.GateChip.html "halo2_base::gates::flex_gate::GateChip struct") A chip that implements the [GateInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html "GateInstructions") trait supporting basic arithmetic operations. [Enums](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/index.html#enums) ---------------------------------------------------------------------------------------------- [GateStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/enum.GateStrategy.html "halo2_base::gates::flex_gate::GateStrategy enum") Specifies the gate strategy for the gate chip [Constants](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/index.html#constants) ------------------------------------------------------------------------------------------------------ [MAX\_PHASE](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/constant.MAX_PHASE.html "halo2_base::gates::flex_gate::MAX_PHASE constant") The maximum number of phases in halo2. [Traits](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/index.html#traits) ------------------------------------------------------------------------------------------------ [GateInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/flex_gate/trait.GateInstructions.html "halo2_base::gates::flex_gate::GateInstructions trait") Trait that defines basic arithmetic operations for a gate. --- # halo2_base::gates::range - Rust Module [halo2\_base](https://axiom-crypto.github.io/halo2-lib/halo2_base/index.html) ::[gates](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/index.html) ::[range](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ===================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/halo2_base/gates/range.rs.html#1-646) · [\[−\]](javascript:void(0) "collapse all docs") Expand description Module using a single lookup table for range checks [Structs](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/index.html#structs) ---------------------------------------------------------------------------------------------- [RangeChip](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeChip.html "halo2_base::gates::range::RangeChip struct") A chip that implements RangeInstructions which provides methods to constrain a field element `x` is within a range of bits. [RangeConfig](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/struct.RangeConfig.html "halo2_base::gates::range::RangeConfig struct") Configuration for Range Chip [Enums](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/index.html#enums) ------------------------------------------------------------------------------------------ [RangeStrategy](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/enum.RangeStrategy.html "halo2_base::gates::range::RangeStrategy enum") Specifies the gate strategy for the range chip [Traits](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/index.html#traits) -------------------------------------------------------------------------------------------- [RangeInstructions](https://axiom-crypto.github.io/halo2-lib/halo2_base/gates/range/trait.RangeInstructions.html "halo2_base::gates::range::RangeInstructions trait") Trait that implements methods to constrain a field element number `x` is within a range of bits. --- # KeccakRow in zkevm_keccak::keccak_packed_multi - Rust Struct [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[keccak\_packed\_multi](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/index.html) ::[KeccakRow](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#88-104) · [\[−\]](javascript:void(0) "collapse all docs") pub struct KeccakRow { /* private fields */ } Expand description KeccakRow Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#implementations) ----------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#106-123) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-KeccakRow%3CF%3E) ### impl [KeccakRow](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html "struct zkevm_keccak::keccak_packed_multi::KeccakRow") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#107-122) #### pub fn [dummy\_rows](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.dummy_rows) (num\_rows: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#trait-implementations) ----------------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-Clone-for-KeccakRow%3CF%3E) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [KeccakRow](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html "struct zkevm_keccak::keccak_packed_multi::KeccakRow") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [KeccakRow](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html "struct zkevm_keccak::keccak_packed_multi::KeccakRow") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-Debug-for-KeccakRow%3CF%3E) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [KeccakRow](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html "struct zkevm_keccak::keccak_packed_multi::KeccakRow") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#synthetic-implementations) -------------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-RefUnwindSafe-for-KeccakRow%3CF%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [KeccakRow](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html "struct zkevm_keccak::keccak_packed_multi::KeccakRow") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-Send-for-KeccakRow%3CF%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [KeccakRow](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html "struct zkevm_keccak::keccak_packed_multi::KeccakRow") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-Sync-for-KeccakRow%3CF%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [KeccakRow](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html "struct zkevm_keccak::keccak_packed_multi::KeccakRow") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-Unpin-for-KeccakRow%3CF%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [KeccakRow](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html "struct zkevm_keccak::keccak_packed_multi::KeccakRow") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-UnwindSafe-for-KeccakRow%3CF%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [KeccakRow](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html "struct zkevm_keccak::keccak_packed_multi::KeccakRow") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#blanket-implementations) --------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-Any-for-KeccakRow%3CF%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-Borrow%3CT%3E-for-KeccakRow%3CF%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-BorrowMut%3CT%3E-for-KeccakRow%3CF%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-Conv-for-KeccakRow%3CF%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-FmtForward-for-KeccakRow%3CF%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-From%3CT%3E-for-KeccakRow%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-Instrument-for-KeccakRow%3CF%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-Into%3CU%3E-for-KeccakRow%3CF%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-Pipe-for-KeccakRow%3CF%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-Pointable-for-KeccakRow%3CF%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-Same%3CT%3E-for-KeccakRow%3CF%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-Tap-for-KeccakRow%3CF%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-ToOwned-for-KeccakRow%3CF%3E) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-TryConv-for-KeccakRow%3CF%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-TryFrom%3CU%3E-for-KeccakRow%3CF%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-TryInto%3CU%3E-for-KeccakRow%3CF%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-VZip%3CV%3E-for-KeccakRow%3CF%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#impl-WithSubscriber-for-KeccakRow%3CF%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakRow.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # KeccakTable in zkevm_keccak::keccak_packed_multi - Rust Struct [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[keccak\_packed\_multi](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/index.html) ::[KeccakTable](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ====================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#359-368) · [\[−\]](javascript:void(0) "collapse all docs") pub struct KeccakTable { pub is_enabled: Column, pub input_rlc: Column, pub output_rlc: Column, } Expand description Keccak Table, used to verify keccak hashing from RLC’ed input. Fields[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#fields) ------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#structfield.is_enabled) `is_enabled: Column` True when the row is enabled [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#structfield.input_rlc) `input_rlc: Column` Byte array input as `RLC(reversed(input))` [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#structfield.output_rlc) `output_rlc: Column` RLC of the hash result Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#implementations) ------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#370-384) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-KeccakTable) ### impl [KeccakTable](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html "struct zkevm_keccak::keccak_packed_multi::KeccakTable") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#372-383) #### pub fn [construct](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.construct) (meta: &mut ConstraintSystem) -> Self Construct a new KeccakTable Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#trait-implementations) ------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#358) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-Clone-for-KeccakTable) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [KeccakTable](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html "struct zkevm_keccak::keccak_packed_multi::KeccakTable") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#358) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [KeccakTable](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html "struct zkevm_keccak::keccak_packed_multi::KeccakTable") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#358) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-Debug-for-KeccakTable) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [KeccakTable](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html "struct zkevm_keccak::keccak_packed_multi::KeccakTable") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#358) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#synthetic-implementations) ---------------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-RefUnwindSafe-for-KeccakTable) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [KeccakTable](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html "struct zkevm_keccak::keccak_packed_multi::KeccakTable") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-Send-for-KeccakTable) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [KeccakTable](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html "struct zkevm_keccak::keccak_packed_multi::KeccakTable") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-Sync-for-KeccakTable) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [KeccakTable](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html "struct zkevm_keccak::keccak_packed_multi::KeccakTable") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-Unpin-for-KeccakTable) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [KeccakTable](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html "struct zkevm_keccak::keccak_packed_multi::KeccakTable") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-UnwindSafe-for-KeccakTable) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [KeccakTable](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html "struct zkevm_keccak::keccak_packed_multi::KeccakTable") Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#blanket-implementations) ----------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-Any-for-KeccakTable) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-Borrow%3CT%3E-for-KeccakTable) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-BorrowMut%3CT%3E-for-KeccakTable) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-Conv-for-KeccakTable) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-FmtForward-for-KeccakTable) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-From%3CT%3E-for-KeccakTable) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-Instrument-for-KeccakTable) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-Into%3CU%3E-for-KeccakTable) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-Pipe-for-KeccakTable) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-Pointable-for-KeccakTable) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-Same%3CT%3E-for-KeccakTable) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-Tap-for-KeccakTable) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-ToOwned-for-KeccakTable) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-TryConv-for-KeccakTable) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-TryFrom%3CU%3E-for-KeccakTable) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-TryInto%3CU%3E-for-KeccakTable) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-VZip%3CV%3E-for-KeccakTable) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#impl-WithSubscriber-for-KeccakTable) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/struct.KeccakTable.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # PartInfo in zkevm_keccak::util - Rust Struct [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[util](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html) ::[PartInfo](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util.rs.html#80-83) · [\[−\]](javascript:void(0) "collapse all docs") pub struct PartInfo { pub bits: Vec, } Expand description Description of which bits (positions) a part contains Fields[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#fields) ------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#structfield.bits) `bits: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) >` The bit positions of the part Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#trait-implementations) ------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util.rs.html#79) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-Clone-for-PartInfo) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [PartInfo](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html "struct zkevm_keccak::util::PartInfo") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util.rs.html#79) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [PartInfo](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html "struct zkevm_keccak::util::PartInfo") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util.rs.html#79) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-Debug-for-PartInfo) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [PartInfo](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html "struct zkevm_keccak::util::PartInfo") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util.rs.html#79) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#synthetic-implementations) ---------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-RefUnwindSafe-for-PartInfo) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [PartInfo](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html "struct zkevm_keccak::util::PartInfo") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-Send-for-PartInfo) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [PartInfo](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html "struct zkevm_keccak::util::PartInfo") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-Sync-for-PartInfo) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [PartInfo](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html "struct zkevm_keccak::util::PartInfo") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-Unpin-for-PartInfo) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [PartInfo](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html "struct zkevm_keccak::util::PartInfo") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-UnwindSafe-for-PartInfo) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [PartInfo](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html "struct zkevm_keccak::util::PartInfo") Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#blanket-implementations) ----------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-Any-for-PartInfo) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-Borrow%3CT%3E-for-PartInfo) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-BorrowMut%3CT%3E-for-PartInfo) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-Conv-for-PartInfo) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-FmtForward-for-PartInfo) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-From%3CT%3E-for-PartInfo) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-Instrument-for-PartInfo) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-Into%3CU%3E-for-PartInfo) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-Pipe-for-PartInfo) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-Pointable-for-PartInfo) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-Same%3CT%3E-for-PartInfo) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-Tap-for-PartInfo) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-ToOwned-for-PartInfo) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-TryConv-for-PartInfo) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-TryFrom%3CU%3E-for-PartInfo) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-TryInto%3CU%3E-for-PartInfo) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-VZip%3CV%3E-for-PartInfo) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#impl-WithSubscriber-for-PartInfo) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # Field in zkevm_keccak::util::eth_types - Rust Trait [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[util](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html) ::[eth\_types](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/index.html) ::[Field](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.Field.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#14) · [\[−\]](javascript:void(0) "collapse all docs") pub trait Field: BigPrimeField + PrimeField { } Expand description Trait used to reduce verbosity with the declaration of the \[`FieldExt`\] trait and its repr. Implementors[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.Field.html#implementors) ------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#17) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.Field.html#impl-Field-for-F) ### impl [Field](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.Field.html "trait zkevm_keccak::util::eth_types::Field") for Fwhere     F: [BigPrimeField](https://axiom-crypto.github.io/halo2-lib/halo2_base/utils/traitalias.BigPrimeField.html "traitalias halo2_base::utils::BigPrimeField") + PrimeField, --- # WordParts in zkevm_keccak::util - Rust Struct [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[util](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html) ::[WordParts](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util.rs.html#87-90) · [\[−\]](javascript:void(0) "collapse all docs") pub struct WordParts { pub parts: Vec, } Expand description Description of how a word is split into parts Fields[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#fields) -------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#structfield.parts) `parts: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[PartInfo](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.PartInfo.html "struct zkevm_keccak::util::PartInfo") >` The parts of the word Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#implementations) -------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util.rs.html#226-287) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-WordParts) ### impl [WordParts](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html "struct zkevm_keccak::util::WordParts") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util.rs.html#228-286) #### pub fn [new](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.new) (part\_size: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) , rot: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) , normalize: [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) ) -> Self Returns a description of how a word will be split into parts Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#trait-implementations) -------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util.rs.html#86) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-Clone-for-WordParts) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [WordParts](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html "struct zkevm_keccak::util::WordParts") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util.rs.html#86) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [WordParts](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html "struct zkevm_keccak::util::WordParts") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util.rs.html#86) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-Debug-for-WordParts) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [WordParts](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html "struct zkevm_keccak::util::WordParts") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util.rs.html#86) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/fmt/type.Result.html "type core::fmt::Result") Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#synthetic-implementations) ----------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-RefUnwindSafe-for-WordParts) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [WordParts](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html "struct zkevm_keccak::util::WordParts") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-Send-for-WordParts) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [WordParts](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html "struct zkevm_keccak::util::WordParts") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-Sync-for-WordParts) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [WordParts](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html "struct zkevm_keccak::util::WordParts") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-Unpin-for-WordParts) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [WordParts](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html "struct zkevm_keccak::util::WordParts") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-UnwindSafe-for-WordParts) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [WordParts](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html "struct zkevm_keccak::util::WordParts") Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#blanket-implementations) ------------------------------------------------------------------------------------------------------------------------------------ [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-Any-for-WordParts) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-Borrow%3CT%3E-for-WordParts) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-BorrowMut%3CT%3E-for-WordParts) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-Conv-for-WordParts) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-FmtForward-for-WordParts) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-From%3CT%3E-for-WordParts) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-Instrument-for-WordParts) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-Into%3CU%3E-for-WordParts) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-Pipe-for-WordParts) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-Pointable-for-WordParts) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-Same%3CT%3E-for-WordParts) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-Tap-for-WordParts) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-ToOwned-for-WordParts) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-TryConv-for-WordParts) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-TryFrom%3CU%3E-for-WordParts) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-TryInto%3CU%3E-for-WordParts) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-VZip%3CV%3E-for-WordParts) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#impl-WithSubscriber-for-WordParts) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/struct.WordParts.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # zkevm_keccak::util::constraint_builder - Rust Module [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[util](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html) ::[constraint\_builder](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ===================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/constraint_builder.rs.html#1-77) · [\[−\]](javascript:void(0) "collapse all docs") [Structs](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/index.html#structs) ------------------------------------------------------------------------------------------------------------ [BaseConstraintBuilder](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html "zkevm_keccak::util::constraint_builder::BaseConstraintBuilder struct") --- # assign_advice_custom in zkevm_keccak::keccak_packed_multi - Rust Function [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[keccak\_packed\_multi](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/index.html) ::[assign\_advice\_custom](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.assign_advice_custom.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#391-407) · [\[−\]](javascript:void(0) "collapse all docs") pub fn assign_advice_custom<'v, F: Field>(    region: &mut Region<'_, F>,    column: Column,    offset: usize,    value: Value) -> AssignedCell<&'v Assigned, F> --- # BaseConstraintBuilder in zkevm_keccak::util::constraint_builder - Rust Struct [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[util](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html) ::[constraint\_builder](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/index.html) ::[BaseConstraintBuilder](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================ [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/constraint_builder.rs.html#5-9) · [\[−\]](javascript:void(0) "collapse all docs") pub struct BaseConstraintBuilder { pub constraints: Vec<(&'static str, Expression)>, pub max_degree: usize, pub condition: Option>, } Fields[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#fields) --------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#structfield.constraints) `constraints: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <(&'static [str](https://doc.rust-lang.org/nightly/std/primitive.str.html) , Expression)>`[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#structfield.max_degree) `max_degree: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) `[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#structfield.condition) `condition: [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") >` Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#trait-implementations) --------------------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/constraint_builder.rs.html#4) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-Default-for-BaseConstraintBuilder%3CF%3E) ### impl [Default](https://doc.rust-lang.org/nightly/core/default/trait.Default.html "trait core::default::Default") for [BaseConstraintBuilder](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html "struct zkevm_keccak::util::constraint_builder::BaseConstraintBuilder") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/constraint_builder.rs.html#4) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.default) #### fn [default](https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default) () -> [BaseConstraintBuilder](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html "struct zkevm_keccak::util::constraint_builder::BaseConstraintBuilder") Returns the “default value” for a type. [Read more](https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default) Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#synthetic-implementations) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-RefUnwindSafe-for-BaseConstraintBuilder%3CF%3E) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [BaseConstraintBuilder](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html "struct zkevm_keccak::util::constraint_builder::BaseConstraintBuilder") where     F: [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-Send-for-BaseConstraintBuilder%3CF%3E) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [BaseConstraintBuilder](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html "struct zkevm_keccak::util::constraint_builder::BaseConstraintBuilder") where     F: [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-Sync-for-BaseConstraintBuilder%3CF%3E) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [BaseConstraintBuilder](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html "struct zkevm_keccak::util::constraint_builder::BaseConstraintBuilder") where     F: [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-Unpin-for-BaseConstraintBuilder%3CF%3E) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [BaseConstraintBuilder](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html "struct zkevm_keccak::util::constraint_builder::BaseConstraintBuilder") where     F: [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-UnwindSafe-for-BaseConstraintBuilder%3CF%3E) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [BaseConstraintBuilder](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html "struct zkevm_keccak::util::constraint_builder::BaseConstraintBuilder") where     F: [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") , Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#blanket-implementations) ------------------------------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-Any-for-BaseConstraintBuilder%3CF%3E) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-Borrow%3CT%3E-for-BaseConstraintBuilder%3CF%3E) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-BorrowMut%3CT%3E-for-BaseConstraintBuilder%3CF%3E) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-Conv-for-BaseConstraintBuilder%3CF%3E) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-FmtForward-for-BaseConstraintBuilder%3CF%3E) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-From%3CT%3E-for-BaseConstraintBuilder%3CF%3E) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-Instrument-for-BaseConstraintBuilder%3CF%3E) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-Into%3CU%3E-for-BaseConstraintBuilder%3CF%3E) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-Pipe-for-BaseConstraintBuilder%3CF%3E) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-Pointable-for-BaseConstraintBuilder%3CF%3E) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-Same%3CT%3E-for-BaseConstraintBuilder%3CF%3E) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-Tap-for-BaseConstraintBuilder%3CF%3E) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-TryConv-for-BaseConstraintBuilder%3CF%3E) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-TryFrom%3CU%3E-for-BaseConstraintBuilder%3CF%3E) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-TryInto%3CU%3E-for-BaseConstraintBuilder%3CF%3E) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-VZip%3CV%3E-for-BaseConstraintBuilder%3CF%3E) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#impl-WithSubscriber-for-BaseConstraintBuilder%3CF%3E) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constraint_builder/struct.BaseConstraintBuilder.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) --- # AccessList in zkevm_keccak::util::eth_types - Rust Struct [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[util](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html) ::[eth\_types](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/index.html) ::[AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =============================================================================================================================================================================================================================================================================================================================================================================================================================================================== [\[−\]](javascript:void(0) "collapse all docs") pub struct AccessList(pub Vec); Expand description Access list Tuple Fields[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#fields) ------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#structfield.0) `0: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") ` Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#trait-implementations) ------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Clone-for-AccessList) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Debug-for-AccessList) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[()](https://doc.rust-lang.org/nightly/std/primitive.unit.html) , [Error](https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html "struct core::fmt::Error") \> Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Decodable-for-AccessList) ### impl Decodable for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.decode) #### fn decode(rlp: &Rlp<'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") , DecoderError> Decode a value from RLP bytes [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Decodable-for-AccessList-1) ### impl Decodable for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.decode-1) #### fn decode(buf: &mut &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") , DecodeError> [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Default-for-AccessList) ### impl [Default](https://doc.rust-lang.org/nightly/core/default/trait.Default.html "trait core::default::Default") for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.default) #### fn [default](https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default) () -> [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") Returns the “default value” for a type. [Read more](https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Deserialize%3C%27de%3E-for-AccessList) ### impl<'de> [Deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html "trait serde::de::Deserialize") <'de> for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.deserialize) #### fn [deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html#tymethod.deserialize) <\_\_D>(     \_\_deserializer: \_\_D ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") , <\_\_D as [Deserializer](https://docs.rs/serde/1.0.163/serde/de/trait.Deserializer.html "trait serde::de::Deserializer") <'de>>::[Error](https://docs.rs/serde/1.0.163/serde/de/trait.Deserializer.html#associatedtype.Error "type serde::de::Deserializer::Error") \>where     \_\_D: [Deserializer](https://docs.rs/serde/1.0.163/serde/de/trait.Deserializer.html "trait serde::de::Deserializer") <'de>, Deserialize this value from the given Serde deserializer. [Read more](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html#tymethod.deserialize) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Encodable-for-AccessList) ### impl Encodable for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.length) #### fn length(&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.encode) #### fn encode(&self, out: &mut dyn BufMut) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Encodable-for-AccessList-1) ### impl Encodable for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.rlp_append) #### fn rlp\_append(&self, stream: &mut RlpStream) Append a value to the stream [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.rlp_bytes) #### fn rlp\_bytes(&self) -> BytesMut Get rlp-encoded bytes for this instance [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-From%3CVec%3CAccessListItem%2C%20Global%3E%3E-for-AccessList) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") > for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (src: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") ) -> [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Hash-for-AccessList) ### impl [Hash](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html "trait core::hash::Hash") for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.hash) #### fn [hash](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash) <\_\_H>(&self, state: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) \_\_H)where     \_\_H: [Hasher](https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html "trait core::hash::Hasher") , Feeds this value into the given [`Hasher`](https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html "Hasher") . [Read more](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash) 1.3.0 · [source](https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#237-239) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.hash_slice) #### fn [hash\_slice](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice) (data: &[\[Self\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) , state: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) H)where     H: [Hasher](https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html "trait core::hash::Hasher") ,     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Feeds a slice of this type into the given [`Hasher`](https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html "Hasher") . [Read more](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-PartialEq%3CAccessList%3E-for-AccessList) ### impl [PartialEq](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html "trait core::cmp::PartialEq") <[AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") \> for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.eq) #### fn [eq](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq) (&self, other: &[AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") ) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests for `self` and `other` values to be equal, and is used by `==`. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#227) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.ne) #### fn [ne](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne) (&self, other: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Rhs) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests for `!=`. The default implementation is almost always sufficient, and should not be overridden without very good reason. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Serialize-for-AccessList) ### impl [Serialize](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html "trait serde::ser::Serialize") for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.serialize) #### fn [serialize](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html#tymethod.serialize) <\_\_S>(     &self,     \_\_serializer: \_\_S ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <<\_\_S as [Serializer](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html "trait serde::ser::Serializer") \>::[Ok](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html#associatedtype.Ok "type serde::ser::Serializer::Ok") , <\_\_S as [Serializer](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html "trait serde::ser::Serializer") \>::[Error](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html#associatedtype.Error "type serde::ser::Serializer::Error") \>where     \_\_S: [Serializer](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html "trait serde::ser::Serializer") , Serialize this value into the given Serde serializer. [Read more](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html#tymethod.serialize) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Eq-for-AccessList) ### impl [Eq](https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html "trait core::cmp::Eq") for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-StructuralEq-for-AccessList) ### impl [StructuralEq](https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html "trait core::marker::StructuralEq") for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-StructuralPartialEq-for-AccessList) ### impl [StructuralPartialEq](https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html "trait core::marker::StructuralPartialEq") for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#synthetic-implementations) ---------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-RefUnwindSafe-for-AccessList) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Send-for-AccessList) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Sync-for-AccessList) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Unpin-for-AccessList) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-UnwindSafe-for-AccessList) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [AccessList](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html "struct zkevm_keccak::util::eth_types::AccessList") Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#blanket-implementations) ----------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Any-for-AccessList) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Borrow%3CT%3E-for-AccessList) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-BorrowMut%3CT%3E-for-AccessList) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Conv-for-AccessList) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-FmtForward-for-AccessList) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-From%3CT%3E-for-AccessList) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.from-1) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Instrument-for-AccessList) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Into%3CU%3E-for-AccessList) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Pipe-for-AccessList) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Pointable-for-AccessList) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Same%3CT%3E-for-AccessList) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-Tap-for-AccessList) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-ToOwned-for-AccessList) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-TryConv-for-AccessList) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-TryFrom%3CU%3E-for-AccessList) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-TryInto%3CU%3E-for-AccessList) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-VZip%3CV%3E-for-AccessList) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-WithSubscriber-for-AccessList) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) [source](https://docs.rs/serde/1.0.163/src/serde/de/mod.rs.html#604) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.AccessList.html#impl-DeserializeOwned-for-AccessList) ### impl [DeserializeOwned](https://docs.rs/serde/1.0.163/serde/de/trait.DeserializeOwned.html "trait serde::de::DeserializeOwned") for Twhere     T: for<'de> [Deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html "trait serde::de::Deserialize") <'de>, --- # zkevm_keccak::util::to_bytes - Rust Module [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[util](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html) ::[to\_bytes](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/to_bytes/index.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util.rs.html#93) · [\[−\]](javascript:void(0) "collapse all docs") Expand description Packs bits into bytes --- # ABSORB_WIDTH_PER_ROW_BYTES in zkevm_keccak::util - Rust Constant [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[util](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html) ::[ABSORB\_WIDTH\_PER\_ROW\_BYTES](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.ABSORB_WIDTH_PER_ROW_BYTES.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util.rs.html#27) · [\[−\]](javascript:void(0) "collapse all docs") pub const ABSORB_WIDTH_PER_ROW_BYTES: usize = _; // 8usize --- # get_num_keccak_f in zkevm_keccak::keccak_packed_multi - Rust Function [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[keccak\_packed\_multi](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/index.html) ::[get\_num\_keccak\_f](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.get_num_keccak_f.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ================================================================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#67-70) · [\[−\]](javascript:void(0) "collapse all docs") pub fn get_num_keccak_f(byte_length: usize) -> usize --- # keccak_phase0 in zkevm_keccak::keccak_packed_multi - Rust Function [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[keccak\_packed\_multi](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/index.html) ::[keccak\_phase0](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.keccak_phase0.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#1639-1955) · [\[−\]](javascript:void(0) "collapse all docs") pub fn keccak_phase0(    rows: &mut Vec>,    squeeze_digests: &mut Vec<[F; 4]>,    bytes: &[u8]) Expand description Witness generation in `FirstPhase` for a keccak hash digest without computing RLCs, which are deferred to `SecondPhase`. --- # keccak_phase1 in zkevm_keccak::keccak_packed_multi - Rust Function [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[keccak\_packed\_multi](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/index.html) ::[keccak\_phase1](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.keccak_phase1.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#1596-1635) · [\[−\]](javascript:void(0) "collapse all docs") pub fn keccak_phase1<'v, F: Field>(    region: &mut Region<'_, F>,    keccak_table: &KeccakTable,    bytes: &[u8],    challenge: Value,    input_rlcs: &mut Vec, F>>,    offset: &mut usize) Expand description Computes and assigns the input RLC values (but not the output RLC values: see `multi_keccak_phase1`). --- # ToScalar in zkevm_keccak::util::eth_types - Rust Trait [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[util](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html) ::[eth\_types](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/index.html) ::[ToScalar](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToScalar.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ========================================================================================================================================================================================================================================================================================================================================================================================================================================================= [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#20-23) · [\[−\]](javascript:void(0) "collapse all docs") pub trait ToScalar { fn to_scalar(&self) -> Option; } Expand description Trait used to define types that can be converted to a 256 bit scalar value. Required Methods[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToScalar.html#required-methods) ------------------------------------------------------------------------------------------------------------------------------ [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#22) #### fn [to\_scalar](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToScalar.html#tymethod.to_scalar) (&self) -> [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") Convert the type to a scalar value. Implementations on Foreign Types[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToScalar.html#foreign-impls) ------------------------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#120-124) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToScalar.html#impl-ToScalar%3CF%3E-for-bool) ### impl [ToScalar](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToScalar.html "trait zkevm_keccak::util::eth_types::ToScalar") for [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#121-123) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToScalar.html#method.to_scalar) #### fn [to\_scalar](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToScalar.html#tymethod.to_scalar) (&self) -> [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") Implementors[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToScalar.html#implementors) ---------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#70-76) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToScalar.html#impl-ToScalar%3CF%3E-for-U256) ### impl [ToScalar](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToScalar.html "trait zkevm_keccak::util::eth_types::ToScalar") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#111-118) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToScalar.html#impl-ToScalar%3CF%3E-for-Address) ### impl [ToScalar](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToScalar.html "trait zkevm_keccak::util::eth_types::ToScalar") for [Address](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Address.html "type zkevm_keccak::util::eth_types::Address") --- # BIT_COUNT in zkevm_keccak::util - Rust Constant [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[util](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html) ::[BIT\_COUNT](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/constant.BIT_COUNT.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ======================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util.rs.html#69) · [\[−\]](javascript:void(0) "collapse all docs") pub const BIT_COUNT: usize = 3; --- # U256 in zkevm_keccak::util::eth_types - Rust Struct [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[util](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html) ::[eth\_types](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/index.html) ::[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =================================================================================================================================================================================================================================================================================================================================================================================================================================================== [\[−\]](javascript:void(0) "collapse all docs") pub struct U256(pub [u64; 4]); Expand description Little-endian large integer type 256-bit unsigned integer. Tuple Fields[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#fields) ------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#structfield.0) `0: [[u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) ; [4](https://doc.rust-lang.org/nightly/std/primitive.array.html) ]` Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#implementations) ------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-U256) ### impl [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") #### pub const [MAX](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedconstant.MAX) : [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") = U256(\[u64::max\_value(); 4\]) Maximum value. #### pub fn [from\_str\_radix](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from_str_radix) (txt: &[str](https://doc.rust-lang.org/nightly/std/primitive.str.html) , radix: [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") , FromStrRadixErr> Converts a string slice in a given base to an integer. Only supports radixes of 10 and 16. #### pub fn [from\_dec\_str](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from_dec_str) (value: &[str](https://doc.rust-lang.org/nightly/std/primitive.str.html) ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") , FromDecStrErr> Convert from a decimal string. #### pub const fn [low\_u32](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.low_u32) (&self) -> [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) Conversion to u32 #### pub const fn [low\_u64](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.low_u64) (&self) -> [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) Low word (u64) #### pub fn [as\_u32](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.as_u32) (&self) -> [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) Conversion to u32 with overflow checking ##### [Panics](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#panics) Panics if the number is larger than 2^32. #### pub fn [as\_u64](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.as_u64) (&self) -> [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) Conversion to u64 with overflow checking ##### [Panics](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#panics-1) Panics if the number is larger than u64::max\_value(). #### pub fn [as\_usize](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.as_usize) (&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Conversion to usize with overflow checking ##### [Panics](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#panics-2) Panics if the number is larger than usize::max\_value(). #### pub const fn [is\_zero](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.is_zero) (&self) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) Whether this is zero. #### pub fn [bits](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.bits) (&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Return the least number of bits needed to represent the number #### pub const fn [bit](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.bit) (&self, index: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) Return if specific bit is set. ##### [Panics](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#panics-3) Panics if `index` exceeds the bit width of the number. #### pub fn [leading\_zeros](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.leading_zeros) (&self) -> [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) Returns the number of leading zeros in the binary representation of self. #### pub fn [trailing\_zeros](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.trailing_zeros) (&self) -> [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) Returns the number of trailing zeros in the binary representation of self. #### pub const fn [byte](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.byte) (&self, index: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) Return specific byte. ##### [Panics](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#panics-4) Panics if `index` exceeds the byte width of the number. #### pub fn [to\_big\_endian](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.to_big_endian) (&self, bytes: &mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) Write to the slice in big-endian format. #### pub fn [to\_little\_endian](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.to_little_endian) (&self, bytes: &mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) Write to the slice in little-endian format. #### pub fn [exp10](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.exp10) (n: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Create `10**n` as this type. ##### [Panics](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#panics-5) Panics if the result overflows the type. #### pub const fn [zero](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.zero) () -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Zero (additive identity) of this type. #### pub const fn [one](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.one) () -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") One (multiplicative identity) of this type. #### pub const fn [max\_value](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.max_value) () -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The maximum value which can be inhabited by this type. #### pub fn [div\_mod](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.div_mod) (self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> ([U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") , [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) Returns a pair `(self / other, self % other)`. ##### [Panics](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#panics-6) Panics if `other` is zero. #### pub fn [integer\_sqrt](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.integer_sqrt) (&self) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Compute the highest `n` such that `n * n <= self`. #### pub fn [pow](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.pow) (self, expon: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Fast exponentiation by squaring https://en.wikipedia.org/wiki/Exponentiation\_by\_squaring ##### [Panics](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#panics-7) Panics if the result overflows the type. #### pub fn [overflowing\_pow](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.overflowing_pow) (self, expon: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> ([U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") , [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) ) Fast exponentiation by squaring. Returns result and overflow flag. #### pub fn [checked\_pow](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.checked_pow) (self, expon: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> Checked exponentiation. Returns `None` if overflow occurred. #### pub fn [overflowing\_add](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.overflowing_add) (self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> ([U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") , [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) ) Addition which overflows and returns a flag if it does. #### pub fn [saturating\_add](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.saturating_add) (self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Addition which saturates at the maximum value (Self::MAX). #### pub fn [checked\_add](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.checked_add) (self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> Checked addition. Returns `None` if overflow occurred. #### pub fn [overflowing\_sub](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.overflowing_sub) (self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> ([U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") , [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) ) Subtraction which underflows and returns a flag if it does. #### pub fn [saturating\_sub](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.saturating_sub) (self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Subtraction which saturates at zero. #### pub fn [checked\_sub](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.checked_sub) (self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> Checked subtraction. Returns `None` if overflow occurred. #### pub fn [abs\_diff](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.abs_diff) (self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Computes the absolute difference between self and other. #### pub fn [overflowing\_mul](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.overflowing_mul) (self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> ([U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") , [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) ) Multiply with overflow, returning a flag if it does. #### pub fn [saturating\_mul](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.saturating_mul) (self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Multiplication which saturates at the maximum value.. #### pub fn [checked\_mul](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.checked_mul) (self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> Checked multiplication. Returns `None` if overflow occurred. #### pub fn [checked\_div](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.checked_div) (self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> Checked division. Returns `None` if `other == 0`. #### pub fn [checked\_rem](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.checked_rem) (self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> Checked modulus. Returns `None` if `other == 0`. #### pub fn [overflowing\_neg](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.overflowing_neg) (self) -> ([U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") , [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) ) Negation with overflow. #### pub fn [checked\_neg](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.checked_neg) (self) -> [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> Checked negation. Returns `None` unless `self == 0`. #### pub fn [from\_big\_endian](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from_big_endian) (slice: &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts from big endian representation bytes in memory. #### pub fn [from\_little\_endian](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from_little_endian) (slice: &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts from little endian representation bytes in memory. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-U256-1) ### impl [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") #### pub const fn [low\_u128](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.low_u128) (&self) -> [u128](https://doc.rust-lang.org/nightly/std/primitive.u128.html) Low 2 words (u128) #### pub fn [as\_u128](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.as_u128) (&self) -> [u128](https://doc.rust-lang.org/nightly/std/primitive.u128.html) Conversion to u128 with overflow checking ##### [Panics](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#panics-8) Panics if the number is larger than 2^128. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-U256-2) ### impl [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") #### pub fn [full\_mul](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.full_mul) (self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> U512 Multiplies two 256-bit integers to produce full 512-bit integer. Overflow is not possible. Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#trait-implementations) ------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-AbiDecode-for-U256) ### impl AbiDecode for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.decode) #### fn decode(bytes: impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]>) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") , AbiError> Decodes the ABI encoded data [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.decode_hex) #### fn decode\_hex(data: impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <[str](https://doc.rust-lang.org/nightly/std/primitive.str.html) \>) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") Decode hex encoded ABI encoded data Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-AbiEncode-for-U256) ### impl AbiEncode for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.encode) #### fn encode(self) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) , [Global](https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html "struct alloc::alloc::Global") \> ABI encode the type [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.encode_hex) #### fn encode\_hex(self) -> [String](https://doc.rust-lang.org/nightly/alloc/string/struct.String.html "struct alloc::string::String") where     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Returns the encoded value as hex string, _with_ a `0x` prefix [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-AbiType-for-U256) ### impl AbiType for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.param_type) #### fn param\_type() -> ParamType The native ABI type this type represents. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Add%3CT%3E-for-%26%27a%20U256) ### impl<'a, T> [Add](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html "trait core::ops::arith::Add") for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") where     T: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \>, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-53) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `+` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.add) #### fn [add](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#tymethod.add) (self, other: T) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `+` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#tymethod.add) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Add%3CT%3E-for-U256) ### impl [Add](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html "trait core::ops::arith::Add") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") where     T: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \>, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-54) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `+` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.add-1) #### fn [add](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#tymethod.add) (self, other: T) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `+` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#tymethod.add) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-AddAssign%3CU256%3E-for-U256) ### impl [AddAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.AddAssign.html "trait core::ops::arith::AddAssign") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.add_assign) #### fn [add\_assign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.AddAssign.html#tymethod.add_assign) (&mut self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) Performs the `+=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.AddAssign.html#tymethod.add_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-AsRef%3C%5Bu64%5D%3E-for-U256) ### impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html)\ \]> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Get a reference to the underlying little-endian words. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.as_ref) #### fn [as\_ref](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html#tymethod.as_ref) (&self) -> &\[[u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html)\ \] Converts this type into a shared reference of the (usually inferred) input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-BitAnd%3CU256%3E-for-U256) ### impl [BitAnd](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAnd.html "trait core::ops::bit::BitAnd") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-57) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAnd.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `&` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.bitand) #### fn [bitand](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAnd.html#tymethod.bitand) (self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `&` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAnd.html#tymethod.bitand) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-BitAndAssign%3CU256%3E-for-U256) ### impl [BitAndAssign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAndAssign.html "trait core::ops::bit::BitAndAssign") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.bitand_assign) #### fn [bitand\_assign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAndAssign.html#tymethod.bitand_assign) (&mut self, rhs: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) Performs the `&=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAndAssign.html#tymethod.bitand_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-BitOr%3CU256%3E-for-U256) ### impl [BitOr](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOr.html "trait core::ops::bit::BitOr") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-52) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOr.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `|` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.bitor) #### fn [bitor](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOr.html#tymethod.bitor) (self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `|` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOr.html#tymethod.bitor) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-BitOrAssign%3CU256%3E-for-U256) ### impl [BitOrAssign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOrAssign.html "trait core::ops::bit::BitOrAssign") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.bitor_assign) #### fn [bitor\_assign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOrAssign.html#tymethod.bitor_assign) (&mut self, rhs: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) Performs the `|=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOrAssign.html#tymethod.bitor_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-BitXor%3CU256%3E-for-U256) ### impl [BitXor](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXor.html "trait core::ops::bit::BitXor") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-5) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXor.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `^` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.bitxor) #### fn [bitxor](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXor.html#tymethod.bitxor) (self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `^` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXor.html#tymethod.bitxor) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-BitXorAssign%3CU256%3E-for-U256) ### impl [BitXorAssign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXorAssign.html "trait core::ops::bit::BitXorAssign") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.bitxor_assign) #### fn [bitxor\_assign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXorAssign.html#tymethod.bitxor_assign) (&mut self, rhs: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) Performs the `^=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXorAssign.html#tymethod.bitxor_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Clone-for-U256) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Debug-for-U256) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.fmt-2) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[()](https://doc.rust-lang.org/nightly/std/primitive.unit.html) , [Error](https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html "struct core::fmt::Error") \> Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Decodable-for-U256) ### impl Decodable for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.decode-1) #### fn decode(rlp: &Rlp<'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") , DecoderError> Decode a value from RLP bytes [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Decodable-for-U256-1) ### impl Decodable for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.decode-3) #### fn decode(buf: &mut &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") , DecodeError> [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Decode-for-U256) ### impl Decode for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.decode-2) #### fn decode(input: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) I) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") , Error>where     I: Input, Attempt to deserialise the value from input. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.skip) #### fn skip(input: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) I) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[()](https://doc.rust-lang.org/nightly/std/primitive.unit.html) , Error>where     I: Input, Attempt to skip the encoded value from input. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.encoded_fixed_size) #### fn encoded\_fixed\_size() -> [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") <[usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) \> Returns the fixed encoded size of the type. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Default-for-U256) ### impl [Default](https://doc.rust-lang.org/nightly/core/default/trait.Default.html "trait core::default::Default") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.default) #### fn [default](https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default) () -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Returns the “default value” for a type. [Read more](https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Deserialize%3C%27de%3E-for-U256) ### impl<'de> [Deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html "trait serde::de::Deserialize") <'de> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.deserialize) #### fn [deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html#tymethod.deserialize) (     deserializer: D ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") , >::[Error](https://docs.rs/serde/1.0.163/serde/de/trait.Deserializer.html#associatedtype.Error "type serde::de::Deserializer::Error") \>where     D: [Deserializer](https://docs.rs/serde/1.0.163/serde/de/trait.Deserializer.html "trait serde::de::Deserializer") <'de>, Deserialize this value from the given Serde deserializer. [Read more](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html#tymethod.deserialize) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Display-for-U256) ### impl [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[()](https://doc.rust-lang.org/nightly/std/primitive.unit.html) , [Error](https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html "struct core::fmt::Error") \> Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Div%3CT%3E-for-%26%27a%20U256) ### impl<'a, T> [Div](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Div.html "trait core::ops::arith::Div") for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") where     T: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \>, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-55) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Div.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `/` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.div) #### fn [div](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Div.html#tymethod.div) (self, other: T) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `/` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Div.html#tymethod.div) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Div%3CT%3E-for-U256) ### impl [Div](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Div.html "trait core::ops::arith::Div") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") where     T: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \>, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-56) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Div.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `/` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.div-1) #### fn [div](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Div.html#tymethod.div) (self, other: T) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `/` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Div.html#tymethod.div) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-DivAssign%3CT%3E-for-U256) ### impl [DivAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.DivAssign.html "trait core::ops::arith::DivAssign") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") where     T: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \>, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.div_assign) #### fn [div\_assign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.DivAssign.html#tymethod.div_assign) (&mut self, other: T) Performs the `/=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.DivAssign.html#tymethod.div_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Encodable-for-U256) ### impl Encodable for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.rlp_append) #### fn rlp\_append(&self, s: &mut RlpStream) Append a value to the stream [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.rlp_bytes) #### fn rlp\_bytes(&self) -> BytesMut Get rlp-encoded bytes for this instance [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Encodable-for-U256-1) ### impl Encodable for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.length) #### fn length(&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.encode-2) #### fn encode(&self, out: &mut dyn BufMut) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Encode-for-U256) ### impl Encode for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.using_encoded) #### fn using\_encoded(&self, f: F) -> Rwhere     F: [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (&\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) -> R, Convert self to a slice and then invoke the given closure with it. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.size_hint) #### fn size\_hint(&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) If possible give a hint of expected size of the encoding. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.encode_to) #### fn encode\_to(&self, dest: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)where     T: Output + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Convert self to a slice and append it to the destination. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.encode-1) #### fn encode(&self) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) , [Global](https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html "struct alloc::alloc::Global") \> Convert self to an owned vector. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.encoded_size) #### fn encoded\_size(&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Calculates the encoded size. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3C%26%27a%20%5Bu8%3B%2032%5D%3E-for-U256) ### impl<'a> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&'a \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [32](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \]> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-12) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (bytes: &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [32](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \]) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3C%26%27a%20%5Bu8%5D%3E-for-U256) ### impl<'a> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&'a \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-18) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (bytes: &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3C%26%27a%20U256%3E-for-U256) ### impl<'a> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-11) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (x: &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3C%26%27static%20str%3E-for-U256) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&'static [str](https://doc.rust-lang.org/nightly/std/primitive.str.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-5) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (s: &'static [str](https://doc.rust-lang.org/nightly/std/primitive.str.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3C%5Bu8%3B%2032%5D%3E-for-U256) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [32](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \]> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-20) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (bytes: \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [32](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \]) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3CChain%3E-for-U256) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-1) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (chain: Chain) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3CNumeric%3E-for-U256) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (n: Numeric) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3CU128%3E-for-U256) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-7) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: U128) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3CU256%3E-for-%5Bu8%3B%2032%5D) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> for \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [32](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \] [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-2) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (number: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [32](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \] Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3Ci128%3E-for-U256) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[i128](https://doc.rust-lang.org/nightly/std/primitive.i128.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-17) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: [i128](https://doc.rust-lang.org/nightly/std/primitive.i128.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3Ci16%3E-for-U256) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[i16](https://doc.rust-lang.org/nightly/std/primitive.i16.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-8) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: [i16](https://doc.rust-lang.org/nightly/std/primitive.i16.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3Ci32%3E-for-U256) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[i32](https://doc.rust-lang.org/nightly/std/primitive.i32.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-15) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: [i32](https://doc.rust-lang.org/nightly/std/primitive.i32.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3Ci64%3E-for-U256) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-6) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3Ci8%3E-for-U256) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[i8](https://doc.rust-lang.org/nightly/std/primitive.i8.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-9) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: [i8](https://doc.rust-lang.org/nightly/std/primitive.i8.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3Cisize%3E-for-U256) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[isize](https://doc.rust-lang.org/nightly/std/primitive.isize.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-3) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: [isize](https://doc.rust-lang.org/nightly/std/primitive.isize.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3Cu128%3E-for-U256) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[u128](https://doc.rust-lang.org/nightly/std/primitive.u128.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-10) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: [u128](https://doc.rust-lang.org/nightly/std/primitive.u128.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3Cu16%3E-for-U256) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[u16](https://doc.rust-lang.org/nightly/std/primitive.u16.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-19) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: [u16](https://doc.rust-lang.org/nightly/std/primitive.u16.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3Cu32%3E-for-U256) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-16) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3Cu64%3E-for-U256) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-13) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3Cu8%3E-for-U256) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-4) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: [u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3Cusize%3E-for-U256) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-14) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-FromStr-for-U256) ### impl [FromStr](https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html "trait core::str::traits::FromStr") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Err) #### type [Err](https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err) = FromHexError The associated error which can be returned from parsing. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from_str) #### fn [from\_str](https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str) (value: &[str](https://doc.rust-lang.org/nightly/std/primitive.str.html) ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") , <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") as [FromStr](https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html "trait core::str::traits::FromStr") \>::[Err](https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err "type core::str::traits::FromStr::Err") \> Parses a string `s` to return a value of this type. [Read more](https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Hash-for-U256) ### impl [Hash](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html "trait core::hash::Hash") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.hash) #### fn [hash](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash) <\_\_H>(&self, state: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) \_\_H)where     \_\_H: [Hasher](https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html "trait core::hash::Hasher") , Feeds this value into the given [`Hasher`](https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html "Hasher") . [Read more](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash) 1.3.0 · [source](https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#237-239) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.hash_slice) #### fn [hash\_slice](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice) (data: &[\[Self\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) , state: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) H)where     H: [Hasher](https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html "trait core::hash::Hasher") ,     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Feeds a slice of this type into the given [`Hasher`](https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html "Hasher") . [Read more](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-LowerHex-for-U256) ### impl [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.fmt-3) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[()](https://doc.rust-lang.org/nightly/std/primitive.unit.html) , [Error](https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html "struct core::fmt::Error") \> Formats the value using the given formatter. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-MaxEncodedLen-for-U256) ### impl MaxEncodedLen for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.max_encoded_len) #### fn max\_encoded\_len() -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Upper bound, in bytes, of the maximum encoded size of this item. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20U256%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-6) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20U256%3E-for-U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-31) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-25) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20i16%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [i16](https://doc.rust-lang.org/nightly/std/primitive.i16.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-48) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-42) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [i16](https://doc.rust-lang.org/nightly/std/primitive.i16.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20i16%3E-for-U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [i16](https://doc.rust-lang.org/nightly/std/primitive.i16.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-39) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-33) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [i16](https://doc.rust-lang.org/nightly/std/primitive.i16.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20i32%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [i32](https://doc.rust-lang.org/nightly/std/primitive.i32.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-19) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-13) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [i32](https://doc.rust-lang.org/nightly/std/primitive.i32.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20i32%3E-for-U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [i32](https://doc.rust-lang.org/nightly/std/primitive.i32.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-43) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-37) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [i32](https://doc.rust-lang.org/nightly/std/primitive.i32.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20i64%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-47) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-41) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20i64%3E-for-U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-25) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-19) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20i8%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [i8](https://doc.rust-lang.org/nightly/std/primitive.i8.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-30) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-24) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [i8](https://doc.rust-lang.org/nightly/std/primitive.i8.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20i8%3E-for-U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [i8](https://doc.rust-lang.org/nightly/std/primitive.i8.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-32) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-26) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [i8](https://doc.rust-lang.org/nightly/std/primitive.i8.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20isize%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [isize](https://doc.rust-lang.org/nightly/std/primitive.isize.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-15) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-9) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [isize](https://doc.rust-lang.org/nightly/std/primitive.isize.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20isize%3E-for-U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [isize](https://doc.rust-lang.org/nightly/std/primitive.isize.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-46) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-40) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [isize](https://doc.rust-lang.org/nightly/std/primitive.isize.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20u16%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [u16](https://doc.rust-lang.org/nightly/std/primitive.u16.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-40) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-34) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [u16](https://doc.rust-lang.org/nightly/std/primitive.u16.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20u16%3E-for-U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [u16](https://doc.rust-lang.org/nightly/std/primitive.u16.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-41) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-35) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [u16](https://doc.rust-lang.org/nightly/std/primitive.u16.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20u32%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-35) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-29) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20u32%3E-for-U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-10) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-4) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20u64%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-42) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-36) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20u64%3E-for-U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-22) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-16) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20u8%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-17) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-11) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20u8%3E-for-U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-38) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-32) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20usize%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-8) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-2) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3C%26%27a%20usize%3E-for-U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <&'a [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-37) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-31) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: &'a [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3CU256%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-23) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-17) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3CU256%3E-for-U256) ### impl [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-26) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-20) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Ci16%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[i16](https://doc.rust-lang.org/nightly/std/primitive.i16.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-13) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-7) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [i16](https://doc.rust-lang.org/nightly/std/primitive.i16.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Ci16%3E-for-U256) ### impl [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[i16](https://doc.rust-lang.org/nightly/std/primitive.i16.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-33) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-27) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [i16](https://doc.rust-lang.org/nightly/std/primitive.i16.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Ci32%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[i32](https://doc.rust-lang.org/nightly/std/primitive.i32.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-24) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-18) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [i32](https://doc.rust-lang.org/nightly/std/primitive.i32.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Ci32%3E-for-U256) ### impl [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[i32](https://doc.rust-lang.org/nightly/std/primitive.i32.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-9) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-3) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [i32](https://doc.rust-lang.org/nightly/std/primitive.i32.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Ci64%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-44) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-38) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Ci64%3E-for-U256) ### impl [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-27) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-21) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Ci8%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[i8](https://doc.rust-lang.org/nightly/std/primitive.i8.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-20) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-14) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [i8](https://doc.rust-lang.org/nightly/std/primitive.i8.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Ci8%3E-for-U256) ### impl [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[i8](https://doc.rust-lang.org/nightly/std/primitive.i8.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-45) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-39) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [i8](https://doc.rust-lang.org/nightly/std/primitive.i8.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Cisize%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[isize](https://doc.rust-lang.org/nightly/std/primitive.isize.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-18) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-12) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [isize](https://doc.rust-lang.org/nightly/std/primitive.isize.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Cisize%3E-for-U256) ### impl [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[isize](https://doc.rust-lang.org/nightly/std/primitive.isize.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-21) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-15) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [isize](https://doc.rust-lang.org/nightly/std/primitive.isize.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Cu16%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[u16](https://doc.rust-lang.org/nightly/std/primitive.u16.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-11) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-5) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [u16](https://doc.rust-lang.org/nightly/std/primitive.u16.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Cu16%3E-for-U256) ### impl [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[u16](https://doc.rust-lang.org/nightly/std/primitive.u16.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-28) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-22) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [u16](https://doc.rust-lang.org/nightly/std/primitive.u16.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Cu32%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-16) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-10) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Cu32%3E-for-U256) ### impl [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-14) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-8) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Cu64%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-34) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-28) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Cu64%3E-for-U256) ### impl [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-12) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-6) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Cu8%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-49) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-43) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Cu8%3E-for-U256) ### impl [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-29) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-23) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Cusize%3E-for-%26%27a%20U256) ### impl<'a> [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) \> for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-7) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-1) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Mul%3Cusize%3E-for-U256) ### impl [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") <[usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-36) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `*` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul-30) #### fn [mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) (self, other: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `*` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-MulAssign%3CU256%3E-for-U256) ### impl [MulAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html "trait core::ops::arith::MulAssign") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul_assign-2) #### fn [mul\_assign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) (&mut self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) Performs the `*=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-MulAssign%3Ci16%3E-for-U256) ### impl [MulAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html "trait core::ops::arith::MulAssign") <[i16](https://doc.rust-lang.org/nightly/std/primitive.i16.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul_assign-1) #### fn [mul\_assign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) (&mut self, other: [i16](https://doc.rust-lang.org/nightly/std/primitive.i16.html) ) Performs the `*=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-MulAssign%3Ci32%3E-for-U256) ### impl [MulAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html "trait core::ops::arith::MulAssign") <[i32](https://doc.rust-lang.org/nightly/std/primitive.i32.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul_assign-8) #### fn [mul\_assign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) (&mut self, other: [i32](https://doc.rust-lang.org/nightly/std/primitive.i32.html) ) Performs the `*=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-MulAssign%3Ci64%3E-for-U256) ### impl [MulAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html "trait core::ops::arith::MulAssign") <[i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul_assign-7) #### fn [mul\_assign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) (&mut self, other: [i64](https://doc.rust-lang.org/nightly/std/primitive.i64.html) ) Performs the `*=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-MulAssign%3Ci8%3E-for-U256) ### impl [MulAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html "trait core::ops::arith::MulAssign") <[i8](https://doc.rust-lang.org/nightly/std/primitive.i8.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul_assign-6) #### fn [mul\_assign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) (&mut self, other: [i8](https://doc.rust-lang.org/nightly/std/primitive.i8.html) ) Performs the `*=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-MulAssign%3Cisize%3E-for-U256) ### impl [MulAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html "trait core::ops::arith::MulAssign") <[isize](https://doc.rust-lang.org/nightly/std/primitive.isize.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul_assign-10) #### fn [mul\_assign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) (&mut self, other: [isize](https://doc.rust-lang.org/nightly/std/primitive.isize.html) ) Performs the `*=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-MulAssign%3Cu16%3E-for-U256) ### impl [MulAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html "trait core::ops::arith::MulAssign") <[u16](https://doc.rust-lang.org/nightly/std/primitive.u16.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul_assign) #### fn [mul\_assign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) (&mut self, other: [u16](https://doc.rust-lang.org/nightly/std/primitive.u16.html) ) Performs the `*=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-MulAssign%3Cu32%3E-for-U256) ### impl [MulAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html "trait core::ops::arith::MulAssign") <[u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul_assign-4) #### fn [mul\_assign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) (&mut self, other: [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) ) Performs the `*=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-MulAssign%3Cu64%3E-for-U256) ### impl [MulAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html "trait core::ops::arith::MulAssign") <[u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul_assign-3) #### fn [mul\_assign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) (&mut self, other: [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) ) Performs the `*=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-MulAssign%3Cu8%3E-for-U256) ### impl [MulAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html "trait core::ops::arith::MulAssign") <[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul_assign-9) #### fn [mul\_assign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) (&mut self, other: [u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ) Performs the `*=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-MulAssign%3Cusize%3E-for-U256) ### impl [MulAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html "trait core::ops::arith::MulAssign") <[usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.mul_assign-5) #### fn [mul\_assign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) (&mut self, other: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Performs the `*=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html#tymethod.mul_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Not-for-U256) ### impl [Not](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Not.html "trait core::ops::bit::Not") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Not.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `!` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.not) #### fn [not](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Not.html#tymethod.not) (self) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the unary `!` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Not.html#tymethod.not) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Ord-for-U256) ### impl [Ord](https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html "trait core::cmp::Ord") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.cmp) #### fn [cmp](https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp) (&self, other: &[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [Ordering](https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html "enum core::cmp::Ordering") This method returns an [`Ordering`](https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html "Ordering") between `self` and `other`. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp) 1.21.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#795-798) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.max) #### fn [max](https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max) (self, other: Self) -> Selfwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Compares and returns the maximum of two values. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max) 1.21.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#822-825) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.min) #### fn [min](https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min) (self, other: Self) -> Selfwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Compares and returns the minimum of two values. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min) 1.50.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#854-858) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.clamp) #### fn [clamp](https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp) (self, min: Self, max: Self) -> Selfwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") + [PartialOrd](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html "trait core::cmp::PartialOrd") , Restrict a value to a certain interval. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-PartialEq%3CU256%3E-for-U256) ### impl [PartialEq](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html "trait core::cmp::PartialEq") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.eq) #### fn [eq](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq) (&self, other: &[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests for `self` and `other` values to be equal, and is used by `==`. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#227) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.ne) #### fn [ne](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne) (&self, other: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Rhs) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests for `!=`. The default implementation is almost always sufficient, and should not be overridden without very good reason. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-PartialOrd%3CU256%3E-for-U256) ### impl [PartialOrd](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html "trait core::cmp::PartialOrd") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.partial_cmp) #### fn [partial\_cmp](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp) (&self, other: &[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") <[Ordering](https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html "enum core::cmp::Ordering") \> This method returns an ordering between `self` and `other` values if one exists. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1119) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.lt) #### fn [lt](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt) (&self, other: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Rhs) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests less than (for `self` and `other`) and is used by the `<` operator. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1138) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.le) #### fn [le](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le) (&self, other: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Rhs) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests less than or equal to (for `self` and `other`) and is used by the `<=` operator. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1156) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.gt) #### fn [gt](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt) (&self, other: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Rhs) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests greater than (for `self` and `other`) and is used by the `>` operator. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1175) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.ge) #### fn [ge](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge) (&self, other: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Rhs) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests greater than or equal to (for `self` and `other`) and is used by the `>=` operator. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Rem%3CT%3E-for-%26%27a%20U256) ### impl<'a, T> [Rem](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Rem.html "trait core::ops::arith::Rem") for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") where     T: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> + [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-59) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Rem.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `%` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.rem-1) #### fn [rem](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Rem.html#tymethod.rem) (self, other: T) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `%` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Rem.html#tymethod.rem) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Rem%3CT%3E-for-U256) ### impl [Rem](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Rem.html "trait core::ops::arith::Rem") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") where     T: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> + [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-58) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Rem.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `%` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.rem) #### fn [rem](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Rem.html#tymethod.rem) (self, other: T) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `%` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Rem.html#tymethod.rem) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-RemAssign%3CT%3E-for-U256) ### impl [RemAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.RemAssign.html "trait core::ops::arith::RemAssign") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") where     T: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> + [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.rem_assign) #### fn [rem\_assign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.RemAssign.html#tymethod.rem_assign) (&mut self, other: T) Performs the `%=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.RemAssign.html#tymethod.rem_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Serialize-for-U256) ### impl [Serialize](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html "trait serde::ser::Serialize") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.serialize) #### fn [serialize](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html#tymethod.serialize) (     &self,     serializer: S ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <::[Ok](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html#associatedtype.Ok "type serde::ser::Serializer::Ok") , ::[Error](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html#associatedtype.Error "type serde::ser::Serializer::Error") \>where     S: [Serializer](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html "trait serde::ser::Serializer") , Serialize this value into the given Serde serializer. [Read more](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html#tymethod.serialize) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Shl%3CT%3E-for-%26%27a%20U256) ### impl<'a, T> [Shl](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Shl.html "trait core::ops::bit::Shl") for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") where     T: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \>, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-51) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Shl.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `<<` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.shl-1) #### fn [shl](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Shl.html#tymethod.shl) (self, shift: T) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `<<` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Shl.html#tymethod.shl) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Shl%3CT%3E-for-U256) ### impl [Shl](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Shl.html "trait core::ops::bit::Shl") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") where     T: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \>, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-50) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Shl.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `<<` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.shl) #### fn [shl](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Shl.html#tymethod.shl) (self, shift: T) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `<<` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Shl.html#tymethod.shl) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-ShlAssign%3CT%3E-for-U256) ### impl [ShlAssign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.ShlAssign.html "trait core::ops::bit::ShlAssign") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") where     T: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \>, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.shl_assign) #### fn [shl\_assign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.ShlAssign.html#tymethod.shl_assign) (&mut self, shift: T) Performs the `<<=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.ShlAssign.html#tymethod.shl_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Shr%3CT%3E-for-%26%27a%20U256) ### impl<'a, T> [Shr](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Shr.html "trait core::ops::bit::Shr") for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") where     T: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \>, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-2) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Shr.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `>>` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.shr-1) #### fn [shr](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Shr.html#tymethod.shr) (self, shift: T) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `>>` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Shr.html#tymethod.shr) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Shr%3CT%3E-for-U256) ### impl [Shr](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Shr.html "trait core::ops::bit::Shr") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") where     T: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \>, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-1) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Shr.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `>>` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.shr) #### fn [shr](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Shr.html#tymethod.shr) (self, shift: T) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `>>` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.Shr.html#tymethod.shr) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-ShrAssign%3CT%3E-for-U256) ### impl [ShrAssign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.ShrAssign.html "trait core::ops::bit::ShrAssign") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") where     T: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \>, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.shr_assign) #### fn [shr\_assign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.ShrAssign.html#tymethod.shr_assign) (&mut self, shift: T) Performs the `>>=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.ShrAssign.html#tymethod.shr_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Sub%3CT%3E-for-%26%27a%20U256) ### impl<'a, T> [Sub](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html "trait core::ops::arith::Sub") for &'a [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") where     T: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \>, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-3) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `-` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.sub) #### fn [sub](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#tymethod.sub) (self, other: T) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `-` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#tymethod.sub) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Sub%3CT%3E-for-U256) ### impl [Sub](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html "trait core::ops::arith::Sub") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") where     T: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \>, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-4) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#associatedtype.Output) = [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") The resulting type after applying the `-` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.sub-1) #### fn [sub](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#tymethod.sub) (self, other: T) -> [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Performs the `-` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#tymethod.sub) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-SubAssign%3CU256%3E-for-U256) ### impl [SubAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.SubAssign.html "trait core::ops::arith::SubAssign") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.sub_assign) #### fn [sub\_assign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.SubAssign.html#tymethod.sub_assign) (&mut self, other: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) Performs the `-=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/arith/trait.SubAssign.html#tymethod.sub_assign) [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#78-82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-ToAddress-for-U256) ### impl [ToAddress](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToAddress.html "trait zkevm_keccak::util::eth_types::ToAddress") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#79-81) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.to_address) #### fn [to\_address](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToAddress.html#tymethod.to_address) (&self) -> [Address](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Address.html "type zkevm_keccak::util::eth_types::Address") Convert the type to a [`Address`](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/type.Address.html "Address") . [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#52-59) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-ToBigEndian-for-U256) ### impl [ToBigEndian](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToBigEndian.html "trait zkevm_keccak::util::eth_types::ToBigEndian") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#54-58) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.to_be_bytes) #### fn [to\_be\_bytes](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToBigEndian.html#tymethod.to_be_bytes) (&self) -> \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [32](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \] Encode the value as byte array in big endian. [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#61-68) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-ToLittleEndian-for-U256) ### impl [ToLittleEndian](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToLittleEndian.html "trait zkevm_keccak::util::eth_types::ToLittleEndian") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#63-67) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.to_le_bytes) #### fn [to\_le\_bytes](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToLittleEndian.html#tymethod.to_le_bytes) (&self) -> \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [32](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \] Encode the value as byte array in little endian. [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#70-76) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-ToScalar%3CF%3E-for-U256) ### impl [ToScalar](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToScalar.html "trait zkevm_keccak::util::eth_types::ToScalar") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#71-75) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.to_scalar) #### fn [to\_scalar](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToScalar.html#tymethod.to_scalar) (&self) -> [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") Convert the type to a scalar value. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Tokenizable-for-U256) ### impl Tokenizable for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from_token) #### fn from\_token(token: Token) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") , InvalidOutputType> Converts a `Token` into expected type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.into_token) #### fn into\_token(self) -> Token Converts a specified type back into token. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-TryFrom%3C%26%27a%20U512%3E-for-U256) ### impl<'a> [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") <&'a U512> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Error-2) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = Error The type returned in the event of a conversion error. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.try_from-2) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: &'a U512) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") , Error> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-TryFrom%3CI256%3E-for-U256) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = TryFromBigIntError The type returned in the event of a conversion error. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: I256) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") , <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") as [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-TryFrom%3CStringifiedNumeric%3E-for-U256) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = FromDecStrErr The type returned in the event of a conversion error. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.try_from-1) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (     value: StringifiedNumeric ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") , <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") as [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-TryFrom%3CU256%3E-for-usize) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> for [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Error-3) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = &'static [str](https://doc.rust-lang.org/nightly/std/primitive.str.html) The type returned in the event of a conversion error. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.try_from-3) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (u: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) , &'static [str](https://doc.rust-lang.org/nightly/std/primitive.str.html) \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-TryFrom%3CU512%3E-for-U256) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Error-4) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = Error The type returned in the event of a conversion error. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.try_from-4) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U512) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") , Error> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-UpperHex-for-U256) ### impl [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.fmt-1) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[()](https://doc.rust-lang.org/nightly/std/primitive.unit.html) , [Error](https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html "struct core::fmt::Error") \> Formats the value using the given formatter. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-AbiArrayType-for-U256) ### impl AbiArrayType for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Copy-for-U256) ### impl [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-EncodeLike%3CU256%3E-for-U256) ### impl EncodeLike<[U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") \> for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Eq-for-U256) ### impl [Eq](https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html "trait core::cmp::Eq") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-StructuralEq-for-U256) ### impl [StructuralEq](https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html "trait core::marker::StructuralEq") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-StructuralPartialEq-for-U256) ### impl [StructuralPartialEq](https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html "trait core::marker::StructuralPartialEq") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-TokenizableItem-for-U256) ### impl TokenizableItem for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#synthetic-implementations) ---------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-RefUnwindSafe-for-U256) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Send-for-U256) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Sync-for-U256) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Unpin-for-U256) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-UnwindSafe-for-U256) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#blanket-implementations) ----------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Any-for-U256) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-AsBits%3CT%3E-for-U256) ### impl AsBits for Awhere     A: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <[\[T\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) \>,     T: BitStore, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.as_bits) #### fn as\_bits(&self) -> &BitSlicewhere     O: BitOrder, Views `self` as an immutable bit-slice region with the `O` ordering. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.try_as_bits) #### fn try\_as\_bits(&self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <&BitSlice, BitSpanError>where     O: BitOrder, Attempts to view `self` as an immutable bit-slice region with the `O` ordering. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-AsByteSlice%3CT%3E-for-U256) ### impl AsByteSlice for Uwhere     T: ToByteSlice,     U: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <[\[T\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) \> + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.as_byte_slice) #### fn as\_byte\_slice(&self) -> &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]ⓘNotable traits for &mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]`impl [Write](https://doc.rust-lang.org/nightly/std/io/trait.Write.html "trait std::io::Write") for &mut [[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]impl [Read](https://doc.rust-lang.org/nightly/std/io/trait.Read.html "trait std::io::Read") for &[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]` [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Borrow%3CT%3E-for-U256) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-BorrowMut%3CT%3E-for-U256) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Conv-for-U256) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-DecodeAll-for-U256) ### impl DecodeAll for Twhere     T: Decode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.decode_all) #### fn decode\_all(input: &mut &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") Decode `Self` and consume all of the given input data. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-DecodeLimit-for-U256) ### impl DecodeLimit for Twhere     T: Decode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.decode_all_with_depth_limit) #### fn decode\_all\_with\_depth\_limit(limit: [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) , input: &mut &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") Decode `Self` and consume all of the given input data. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.decode_with_depth_limit) #### fn decode\_with\_depth\_limit(limit: [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) , input: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) I) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     I: Input, Decode `Self` with the given maximum recursion depth and advance `input` by the number of bytes consumed. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Detokenize-for-U256) ### impl Detokenize for Twhere     T: Tokenizable, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from_tokens) #### fn from\_tokens(tokens: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") Creates a new instance from parsed ABI tokens. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-FmtForward-for-U256) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-From%3CT%3E-for-U256) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.from-21) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Instrument-for-U256) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Into%3CU%3E-for-U256) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-KeyedVec-for-U256) ### impl KeyedVec for Twhere     T: Codec, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.to_keyed_vec) #### fn to\_keyed\_vec(&self, prepend\_key: &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) , [Global](https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html "struct alloc::alloc::Global") \> Return an encoding of `Self` prepended by given slice. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Pipe-for-U256) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Pointable-for-U256) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Same%3CT%3E-for-U256) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Output-60) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Tap-for-U256) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-ToOwned-for-U256) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [source](https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-ToString-for-U256) ### impl [ToString](https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html "trait alloc::string::ToString") for Twhere     T: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.to_string) #### default fn [to\_string](https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string) (&self) -> [String](https://doc.rust-lang.org/nightly/alloc/string/struct.String.html "struct alloc::string::String") Converts the given value to a `String`. [Read more](https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Tokenize-for-U256) ### impl Tokenize for Twhere     T: Tokenizable, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.into_tokens) #### fn into\_tokens(self) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") Convert to list of tokens [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-TryConv-for-U256) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-TryFrom%3CU%3E-for-U256) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Error-6) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.try_from-5) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-TryInto%3CU%3E-for-U256) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#associatedtype.Error-5) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-VZip%3CV%3E-for-U256) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-WithSubscriber-for-U256) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-Codec-for-U256) ### impl Codec for Swhere     S: Decode + Encode, [source](https://docs.rs/serde/1.0.163/src/serde/de/mod.rs.html#604) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-DeserializeOwned-for-U256) ### impl [DeserializeOwned](https://docs.rs/serde/1.0.163/serde/de/trait.DeserializeOwned.html "trait serde::de::DeserializeOwned") for Twhere     T: for<'de> [Deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html "trait serde::de::Deserialize") <'de>, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-EncodeLike%3C%26%26T%3E-for-U256) ### impl EncodeLike<&[&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T> for Twhere     T: Encode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-EncodeLike%3C%26T%3E-for-U256) ### impl EncodeLike<[&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T> for Twhere     T: Encode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-EncodeLike%3C%26mut%20T%3E-for-U256) ### impl EncodeLike<[&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T> for Twhere     T: Encode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-EncodeLike%3CArc%3CT%3E%3E-for-U256) ### impl EncodeLike<[Arc](https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html "struct alloc::sync::Arc") > for Twhere     T: Encode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-EncodeLike%3CBox%3CT%2C%20Global%3E%3E-for-U256) ### impl EncodeLike<[Box](https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html "struct alloc::boxed::Box") > for Twhere     T: Encode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-EncodeLike%3CCow%3C%27a%2C%20T%3E%3E-for-U256) ### impl<'a, T> EncodeLike<[Cow](https://doc.rust-lang.org/nightly/alloc/borrow/enum.Cow.html "enum alloc::borrow::Cow") <'a, T>> for Twhere     T: [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") + Encode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-EncodeLike%3CRc%3CT%3E%3E-for-U256) ### impl EncodeLike<[Rc](https://doc.rust-lang.org/nightly/alloc/rc/struct.Rc.html "struct alloc::rc::Rc") > for Twhere     T: Encode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-FullCodec-for-U256) ### impl FullCodec for Swhere     S: Decode + FullEncode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-FullEncode-for-U256) ### impl FullEncode for Swhere     S: Encode + EncodeLike, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-GroupOps%3CRhs%2C%20Output%3E-for-U256) ### impl GroupOps for Twhere     T: [Add](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html "trait core::ops::arith::Add") + [Sub](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html "trait core::ops::arith::Sub") + [AddAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.AddAssign.html "trait core::ops::arith::AddAssign") + [SubAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.SubAssign.html "trait core::ops::arith::SubAssign") , [source](https://docs.rs/num-traits/0.2/src/num_traits/lib.rs.html#144) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-NumAssignOps%3CRhs%3E-for-U256) ### impl [NumAssignOps](https://docs.rs/num-traits/0.2/num_traits/trait.NumAssignOps.html "trait num_traits::NumAssignOps") for Twhere     T: [AddAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.AddAssign.html "trait core::ops::arith::AddAssign") + [SubAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.SubAssign.html "trait core::ops::arith::SubAssign") + [MulAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html "trait core::ops::arith::MulAssign") + [DivAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.DivAssign.html "trait core::ops::arith::DivAssign") + [RemAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.RemAssign.html "trait core::ops::arith::RemAssign") , [source](https://docs.rs/num-traits/0.2/src/num_traits/lib.rs.html#111) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-NumOps%3CRhs%2C%20Output%3E-for-U256) ### impl [NumOps](https://docs.rs/num-traits/0.2/num_traits/trait.NumOps.html "trait num_traits::NumOps") for Twhere     T: [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") + [Div](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Div.html "trait core::ops::arith::Div") + [Rem](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Rem.html "trait core::ops::arith::Rem") + [Add](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html "trait core::ops::arith::Add") + [Sub](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html "trait core::ops::arith::Sub") , [source](https://docs.rs/num-traits/0.2/src/num_traits/lib.rs.html#134) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-RefNum%3CBase%3E-for-U256) ### impl [RefNum](https://docs.rs/num-traits/0.2/num_traits/trait.RefNum.html "trait num_traits::RefNum") for Twhere     T: [NumOps](https://docs.rs/num-traits/0.2/num_traits/trait.NumOps.html "trait num_traits::NumOps") + for<'r> [NumOps](https://docs.rs/num-traits/0.2/num_traits/trait.NumOps.html "trait num_traits::NumOps") <[&'r](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Base, Base>, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html#impl-ScalarMul%3CRhs%2C%20Output%3E-for-U256) ### impl ScalarMul for Twhere     T: [Mul](https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html "trait core::ops::arith::Mul") + [MulAssign](https://doc.rust-lang.org/nightly/core/ops/arith/trait.MulAssign.html "trait core::ops::arith::MulAssign") , --- # ToLittleEndian in zkevm_keccak::util::eth_types - Rust Trait [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[util](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html) ::[eth\_types](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/index.html) ::[ToLittleEndian](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToLittleEndian.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ===================================================================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#44-47) · [\[−\]](javascript:void(0) "collapse all docs") pub trait ToLittleEndian { fn to_le_bytes(&self) -> [u8; 32]; } Expand description Trait used to convert a scalar value to a 32 byte array in little endian. Required Methods[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToLittleEndian.html#required-methods) ------------------------------------------------------------------------------------------------------------------------------------ [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#46) #### fn [to\_le\_bytes](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToLittleEndian.html#tymethod.to_le_bytes) (&self) -> \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [32](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \] Convert the value to a 32 byte array in little endian. Implementors[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToLittleEndian.html#implementors) ---------------------------------------------------------------------------------------------------------------------------- [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/util/eth_types.rs.html#61-68) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToLittleEndian.html#impl-ToLittleEndian-for-U256) ### impl [ToLittleEndian](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/trait.ToLittleEndian.html "trait zkevm_keccak::util::eth_types::ToLittleEndian") for [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") --- # multi_keccak_phase0 in zkevm_keccak::keccak_packed_multi - Rust Function [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[keccak\_packed\_multi](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/index.html) ::[multi\_keccak\_phase0](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/keccak_packed_multi/fn.multi_keccak_phase0.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ====================================================================================================================================================================================================================================================================================================================================================================================================================== [source](https://axiom-crypto.github.io/halo2-lib/src/zkevm_keccak/keccak_packed_multi.rs.html#2001-2040) · [\[−\]](javascript:void(0) "collapse all docs") pub fn multi_keccak_phase0(    bytes: &[Vec],    capacity: Option) -> (Vec>, Vec<[F; 4]>) Expand description Returns vector of KeccakRow and vector of hash digest outputs. --- # Signature in zkevm_keccak::util::eth_types - Rust Struct [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[util](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html) ::[eth\_types](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/index.html) ::[Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) ============================================================================================================================================================================================================================================================================================================================================================================================================================================================= [\[−\]](javascript:void(0) "collapse all docs") pub struct Signature { pub r: U256, pub s: U256, pub v: u64, } Expand description An ECDSA signature Fields[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#fields) ------------------------------------------------------------------------------------------------------------ [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#structfield.r) `r: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ` R value [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#structfield.s) `s: [U256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.U256.html "struct zkevm_keccak::util::eth_types::U256") ` S Value [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#structfield.v) `v: [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) ` V value Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#implementations) ------------------------------------------------------------------------------------------------------------------------------ [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Signature) ### impl [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") #### pub fn [verify](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.verify) (&self, message: M, address: A) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[()](https://doc.rust-lang.org/nightly/std/primitive.unit.html) , SignatureError>where     M: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") ,     A: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \>, Verifies that signature on `message` was produced by `address` #### pub fn [recover](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.recover) (&self, message: M) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") , SignatureError>where     M: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Recovers the Ethereum address which was used to sign the given message. Recovery signature data uses ‘Electrum’ notation, this means the `v` value is expected to be either `27` or `28`. #### pub fn [recovery\_id](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.recovery_id) (&self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") Retrieve the recovery ID. #### pub fn [to\_vec](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.to_vec) (&self) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) , [Global](https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html "struct alloc::alloc::Global") \> Copies and serializes `self` into a new `Vec` with the recovery id included Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#trait-implementations) ------------------------------------------------------------------------------------------------------------------------------------------ [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Clone-for-Signature) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Debug-for-Signature) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.fmt-1) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[()](https://doc.rust-lang.org/nightly/std/primitive.unit.html) , [Error](https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html "struct core::fmt::Error") \> Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Decodable-for-Signature) ### impl Decodable for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.decode) #### fn decode(buf: &mut &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") , DecodeError> [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Deserialize%3C%27de%3E-for-Signature) ### impl<'de> [Deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html "trait serde::de::Deserialize") <'de> for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.deserialize) #### fn [deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html#tymethod.deserialize) <\_\_D>(     \_\_deserializer: \_\_D ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") , <\_\_D as [Deserializer](https://docs.rs/serde/1.0.163/serde/de/trait.Deserializer.html "trait serde::de::Deserializer") <'de>>::[Error](https://docs.rs/serde/1.0.163/serde/de/trait.Deserializer.html#associatedtype.Error "type serde::de::Deserializer::Error") \>where     \_\_D: [Deserializer](https://docs.rs/serde/1.0.163/serde/de/trait.Deserializer.html "trait serde::de::Deserializer") <'de>, Deserialize this value from the given Serde deserializer. [Read more](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html#tymethod.deserialize) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Display-for-Signature) ### impl [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[()](https://doc.rust-lang.org/nightly/std/primitive.unit.html) , [Error](https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html "struct core::fmt::Error") \> Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Encodable-for-Signature) ### impl Encodable for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.length) #### fn length(&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.encode) #### fn encode(&self, out: &mut dyn BufMut) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-From%3C%26Signature%3E-for-%5Bu8%3B%2065%5D) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&[Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") \> for \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [65](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \] [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (src: &[Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") ) -> \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [65](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \] Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-From%3CSignature%3E-for-%5Bu8%3B%2065%5D) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") \> for \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [65](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \] [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.from-1) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (src: [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") ) -> \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [65](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \] Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-FromStr-for-Signature) ### impl [FromStr](https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html "trait core::str::traits::FromStr") for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#associatedtype.Err) #### type [Err](https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err) = SignatureError The associated error which can be returned from parsing. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.from_str) #### fn [from\_str](https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str) (s: &[str](https://doc.rust-lang.org/nightly/std/primitive.str.html) ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") , <[Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") as [FromStr](https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html "trait core::str::traits::FromStr") \>::[Err](https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err "type core::str::traits::FromStr::Err") \> Parses a string `s` to return a value of this type. [Read more](https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Hash-for-Signature) ### impl [Hash](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html "trait core::hash::Hash") for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.hash) #### fn [hash](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash) <\_\_H>(&self, state: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) \_\_H)where     \_\_H: [Hasher](https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html "trait core::hash::Hasher") , Feeds this value into the given [`Hasher`](https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html "Hasher") . [Read more](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash) 1.3.0 · [source](https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#237-239) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.hash_slice) #### fn [hash\_slice](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice) (data: &[\[Self\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) , state: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) H)where     H: [Hasher](https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html "trait core::hash::Hasher") ,     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Feeds a slice of this type into the given [`Hasher`](https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html "Hasher") . [Read more](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-PartialEq%3CSignature%3E-for-Signature) ### impl [PartialEq](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html "trait core::cmp::PartialEq") <[Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") \> for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.eq) #### fn [eq](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq) (&self, other: &[Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") ) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests for `self` and `other` values to be equal, and is used by `==`. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#227) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.ne) #### fn [ne](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne) (&self, other: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Rhs) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests for `!=`. The default implementation is almost always sufficient, and should not be overridden without very good reason. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Serialize-for-Signature) ### impl [Serialize](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html "trait serde::ser::Serialize") for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.serialize) #### fn [serialize](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html#tymethod.serialize) <\_\_S>(     &self,     \_\_serializer: \_\_S ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <<\_\_S as [Serializer](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html "trait serde::ser::Serializer") \>::[Ok](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html#associatedtype.Ok "type serde::ser::Serializer::Ok") , <\_\_S as [Serializer](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html "trait serde::ser::Serializer") \>::[Error](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html#associatedtype.Error "type serde::ser::Serializer::Error") \>where     \_\_S: [Serializer](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html "trait serde::ser::Serializer") , Serialize this value into the given Serde serializer. [Read more](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html#tymethod.serialize) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-TryFrom%3C%26%27a%20%5Bu8%5D%3E-for-Signature) ### impl<'a> [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") <&'a \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]> for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (     bytes: &'a \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \] ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") , <[Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") as [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") <&'a \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]>>::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Parses a raw signature which is expected to be 65 bytes long where the first 32 bytes is the `r` value, the second 32 bytes the `s` value and the final byte is the `v` value in ‘Electrum’ notation. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = SignatureError The type returned in the event of a conversion error. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Copy-for-Signature) ### impl [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Eq-for-Signature) ### impl [Eq](https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html "trait core::cmp::Eq") for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-StructuralEq-for-Signature) ### impl [StructuralEq](https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html "trait core::marker::StructuralEq") for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-StructuralPartialEq-for-Signature) ### impl [StructuralPartialEq](https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html "trait core::marker::StructuralPartialEq") for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#synthetic-implementations) --------------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-RefUnwindSafe-for-Signature) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Send-for-Signature) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Sync-for-Signature) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Unpin-for-Signature) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-UnwindSafe-for-Signature) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [Signature](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html "struct zkevm_keccak::util::eth_types::Signature") Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#blanket-implementations) ---------------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Any-for-Signature) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Borrow%3CT%3E-for-Signature) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-BorrowMut%3CT%3E-for-Signature) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Conv-for-Signature) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-FmtForward-for-Signature) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-From%3CT%3E-for-Signature) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.from-2) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Instrument-for-Signature) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Into%3CU%3E-for-Signature) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Pipe-for-Signature) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Pointable-for-Signature) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Same%3CT%3E-for-Signature) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#associatedtype.Output) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-Tap-for-Signature) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-ToOwned-for-Signature) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [source](https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-ToString-for-Signature) ### impl [ToString](https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html "trait alloc::string::ToString") for Twhere     T: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.to_string) #### default fn [to\_string](https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string) (&self) -> [String](https://doc.rust-lang.org/nightly/alloc/string/struct.String.html "struct alloc::string::String") Converts the given value to a `String`. [Read more](https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-TryConv-for-Signature) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-TryFrom%3CU%3E-for-Signature) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#associatedtype.Error-2) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.try_from-1) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-TryInto%3CU%3E-for-Signature) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-VZip%3CV%3E-for-Signature) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-WithSubscriber-for-Signature) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) [source](https://docs.rs/serde/1.0.163/src/serde/de/mod.rs.html#604) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.Signature.html#impl-DeserializeOwned-for-Signature) ### impl [DeserializeOwned](https://docs.rs/serde/1.0.163/serde/de/trait.DeserializeOwned.html "trait serde::de::DeserializeOwned") for Twhere     T: for<'de> [Deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html "trait serde::de::Deserialize") <'de>, --- # H160 in zkevm_keccak::util::eth_types - Rust Struct [zkevm\_keccak](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/index.html) ::[util](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/index.html) ::[eth\_types](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/index.html) ::[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#) ![Copy item path](https://axiom-crypto.github.io/halo2-lib/clipboard.svg) =================================================================================================================================================================================================================================================================================================================================================================================================================================================== [\[−\]](javascript:void(0) "collapse all docs") pub struct H160(pub [u8; 20]); Expand description Fixed-size uninterpreted hash type with 20 bytes (160 bits) size. Tuple Fields[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#fields) ------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#structfield.0) `0: [[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ; [20](https://doc.rust-lang.org/nightly/std/primitive.array.html) ]` Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#implementations) ------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-H160) ### impl [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") #### pub const fn [repeat\_byte](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.repeat_byte) (byte: [u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ) -> [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") Returns a new fixed hash where all bits are set to the given byte. #### pub const fn [zero](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.zero) () -> [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") Returns a new zero-initialized fixed hash. #### pub const fn [len\_bytes](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.len_bytes) () -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Returns the size of this hash in bytes. #### pub fn [as\_bytes](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.as_bytes) (&self) -> &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]ⓘNotable traits for &mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]`impl [Write](https://doc.rust-lang.org/nightly/std/io/trait.Write.html "trait std::io::Write") for &mut [[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]impl [Read](https://doc.rust-lang.org/nightly/std/io/trait.Read.html "trait std::io::Read") for &[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]` Extracts a byte slice containing the entire fixed hash. #### pub fn [as\_bytes\_mut](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.as_bytes_mut) (&mut self) -> &mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]ⓘNotable traits for &mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]`impl [Write](https://doc.rust-lang.org/nightly/std/io/trait.Write.html "trait std::io::Write") for &mut [[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]impl [Read](https://doc.rust-lang.org/nightly/std/io/trait.Read.html "trait std::io::Read") for &[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]` Extracts a mutable byte slice containing the entire fixed hash. #### pub const fn [as\_fixed\_bytes](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.as_fixed_bytes) (&self) -> &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [20](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \] Extracts a reference to the byte array containing the entire fixed hash. #### pub fn [as\_fixed\_bytes\_mut](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.as_fixed_bytes_mut) (&mut self) -> &mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [20](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \] Extracts a reference to the byte array containing the entire fixed hash. #### pub const fn [to\_fixed\_bytes](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.to_fixed_bytes) (self) -> \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [20](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \] Returns the inner bytes array. #### pub fn [as\_ptr](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.as_ptr) (&self) -> [\*const](https://doc.rust-lang.org/nightly/std/primitive.pointer.html) [u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) Returns a constant raw pointer to the value. #### pub fn [as\_mut\_ptr](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.as_mut_ptr) (&mut self) -> [\*mut](https://doc.rust-lang.org/nightly/std/primitive.pointer.html) [u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) Returns a mutable raw pointer to the value. #### pub fn [assign\_from\_slice](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.assign_from_slice) (&mut self, src: &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) Assign the bytes from the byte slice `src` to `self`. ##### [Note](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#note) The given bytes are interpreted in big endian order. ##### [Panics](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#panics) If the length of `src` and the number of bytes in `self` do not match. #### pub fn [from\_slice](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.from_slice) (src: &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) -> [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") Create a new fixed-hash from the given slice `src`. ##### [Note](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#note-1) The given bytes are interpreted in big endian order. ##### [Panics](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#panics-1) If the length of `src` and the number of bytes in `Self` do not match. #### pub fn [covers](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.covers) (&self, b: &[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") ) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) Returns `true` if all bits set in `b` are also set in `self`. #### pub fn [is\_zero](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.is_zero) (&self) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) Returns `true` if no bits are set. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-H160-1) ### impl [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") Utilities using the `byteorder` crate. #### pub fn [to\_low\_u64\_be](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.to_low_u64_be) (&self) -> [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) Returns the lowest 8 bytes interpreted as big-endian. ##### [Note](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#note-2) For hash type with less than 8 bytes the missing bytes are interpreted as being zero. #### pub fn [to\_low\_u64\_le](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.to_low_u64_le) (&self) -> [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) Returns the lowest 8 bytes interpreted as little-endian. ##### [Note](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#note-3) For hash type with less than 8 bytes the missing bytes are interpreted as being zero. #### pub fn [to\_low\_u64\_ne](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.to_low_u64_ne) (&self) -> [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) Returns the lowest 8 bytes interpreted as native-endian. ##### [Note](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#note-4) For hash type with less than 8 bytes the missing bytes are interpreted as being zero. #### pub fn [from\_low\_u64\_be](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.from_low_u64_be) (val: [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) ) -> [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") Creates a new hash type from the given `u64` value. ##### [Note](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#note-5) * The given `u64` value is interpreted as big endian. * Ignores the most significant bits of the given value if the hash type has less than 8 bytes. #### pub fn [from\_low\_u64\_le](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.from_low_u64_le) (val: [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) ) -> [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") Creates a new hash type from the given `u64` value. ##### [Note](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#note-6) * The given `u64` value is interpreted as little endian. * Ignores the most significant bits of the given value if the hash type has less than 8 bytes. #### pub fn [from\_low\_u64\_ne](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.from_low_u64_ne) (val: [u64](https://doc.rust-lang.org/nightly/std/primitive.u64.html) ) -> [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") Creates a new hash type from the given `u64` value. ##### [Note](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#note-7) * The given `u64` value is interpreted as native endian. * Ignores the most significant bits of the given value if the hash type has less than 8 bytes. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-H160-2) ### impl [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") Utilities using the `rand` crate. #### pub fn [randomize\_using](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.randomize_using) (&mut self, rng: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)where     R: [Rng](https://rust-random.github.io/rand/rand/rng/trait.Rng.html "trait rand::rng::Rng") + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Assign `self` to a cryptographically random value using the given random number generator. #### pub fn [randomize](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.randomize) (&mut self) Assign `self` to a cryptographically random value. #### pub fn [random\_using](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.random_using) (rng: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R) -> [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") where     R: [Rng](https://rust-random.github.io/rand/rand/rng/trait.Rng.html "trait rand::rng::Rng") + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Create a new hash with cryptographically random content using the given random number generator. #### pub fn [random](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.random) () -> [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") Create a new hash with cryptographically random content. Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#trait-implementations) ------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-AbiDecode-for-H160) ### impl AbiDecode for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.decode) #### fn decode(bytes: impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]>) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") , AbiError> Decodes the ABI encoded data [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.decode_hex) #### fn decode\_hex(data: impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <[str](https://doc.rust-lang.org/nightly/std/primitive.str.html) \>) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") Decode hex encoded ABI encoded data Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-AbiEncode-for-H160) ### impl AbiEncode for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.encode) #### fn encode(self) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) , [Global](https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html "struct alloc::alloc::Global") \> ABI encode the type [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.encode_hex) #### fn encode\_hex(self) -> [String](https://doc.rust-lang.org/nightly/alloc/string/struct.String.html "struct alloc::string::String") where     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Returns the encoded value as hex string, _with_ a `0x` prefix [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-AbiType-for-H160) ### impl AbiType for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.param_type) #### fn param\_type() -> ParamType The native ABI type this type represents. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-AsMut%3C%5Bu8%5D%3E-for-H160) ### impl [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") <\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]> for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.as_mut) #### fn [as\_mut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html#tymethod.as_mut) (&mut self) -> &mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]ⓘNotable traits for &mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]`impl [Write](https://doc.rust-lang.org/nightly/std/io/trait.Write.html "trait std::io::Write") for &mut [[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]impl [Read](https://doc.rust-lang.org/nightly/std/io/trait.Read.html "trait std::io::Read") for &[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]` Converts this type into a mutable reference of the (usually inferred) input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-AsRef%3C%5Bu8%5D%3E-for-H160) ### impl [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]> for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.as_ref) #### fn [as\_ref](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html#tymethod.as_ref) (&self) -> &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]ⓘNotable traits for &mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]`impl [Write](https://doc.rust-lang.org/nightly/std/io/trait.Write.html "trait std::io::Write") for &mut [[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]impl [Read](https://doc.rust-lang.org/nightly/std/io/trait.Read.html "trait std::io::Read") for &[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]` Converts this type into a shared reference of the (usually inferred) input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-BitAnd%3C%26%27r%20H160%3E-for-%26%27l%20H160) ### impl<'l, 'r> [BitAnd](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAnd.html "trait core::ops::bit::BitAnd") <&'r [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \> for &'l [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#associatedtype.Output-6) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAnd.html#associatedtype.Output) = [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") The resulting type after applying the `&` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.bitand-1) #### fn [bitand](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAnd.html#tymethod.bitand) (self, rhs: &'r [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") ) -> <&'l [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") as [BitAnd](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAnd.html "trait core::ops::bit::BitAnd") <&'r [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \>>::[Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAnd.html#associatedtype.Output "type core::ops::bit::BitAnd::Output") Performs the `&` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAnd.html#tymethod.bitand) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-BitAnd%3CH160%3E-for-H160) ### impl [BitAnd](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAnd.html "trait core::ops::bit::BitAnd") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \> for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#associatedtype.Output-5) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAnd.html#associatedtype.Output) = [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") The resulting type after applying the `&` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.bitand) #### fn [bitand](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAnd.html#tymethod.bitand) (self, rhs: [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") ) -> <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") as [BitAnd](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAnd.html "trait core::ops::bit::BitAnd") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \>>::[Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAnd.html#associatedtype.Output "type core::ops::bit::BitAnd::Output") Performs the `&` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAnd.html#tymethod.bitand) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-BitAndAssign%3C%26%27r%20H160%3E-for-H160) ### impl<'r> [BitAndAssign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAndAssign.html "trait core::ops::bit::BitAndAssign") <&'r [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \> for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.bitand_assign-1) #### fn [bitand\_assign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAndAssign.html#tymethod.bitand_assign) (&mut self, rhs: &'r [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") ) Performs the `&=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAndAssign.html#tymethod.bitand_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-BitAndAssign%3CH160%3E-for-H160) ### impl [BitAndAssign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAndAssign.html "trait core::ops::bit::BitAndAssign") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \> for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.bitand_assign) #### fn [bitand\_assign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAndAssign.html#tymethod.bitand_assign) (&mut self, rhs: [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") ) Performs the `&=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitAndAssign.html#tymethod.bitand_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-BitOr%3C%26%27r%20H160%3E-for-%26%27l%20H160) ### impl<'l, 'r> [BitOr](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOr.html "trait core::ops::bit::BitOr") <&'r [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \> for &'l [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#associatedtype.Output-3) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOr.html#associatedtype.Output) = [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") The resulting type after applying the `|` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.bitor-1) #### fn [bitor](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOr.html#tymethod.bitor) (self, rhs: &'r [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") ) -> <&'l [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") as [BitOr](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOr.html "trait core::ops::bit::BitOr") <&'r [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \>>::[Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOr.html#associatedtype.Output "type core::ops::bit::BitOr::Output") Performs the `|` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOr.html#tymethod.bitor) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-BitOr%3CH160%3E-for-H160) ### impl [BitOr](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOr.html "trait core::ops::bit::BitOr") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \> for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#associatedtype.Output-2) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOr.html#associatedtype.Output) = [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") The resulting type after applying the `|` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.bitor) #### fn [bitor](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOr.html#tymethod.bitor) (self, rhs: [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") ) -> <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") as [BitOr](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOr.html "trait core::ops::bit::BitOr") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \>>::[Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOr.html#associatedtype.Output "type core::ops::bit::BitOr::Output") Performs the `|` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOr.html#tymethod.bitor) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-BitOrAssign%3C%26%27r%20H160%3E-for-H160) ### impl<'r> [BitOrAssign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOrAssign.html "trait core::ops::bit::BitOrAssign") <&'r [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \> for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.bitor_assign-1) #### fn [bitor\_assign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOrAssign.html#tymethod.bitor_assign) (&mut self, rhs: &'r [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") ) Performs the `|=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOrAssign.html#tymethod.bitor_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-BitOrAssign%3CH160%3E-for-H160) ### impl [BitOrAssign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOrAssign.html "trait core::ops::bit::BitOrAssign") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \> for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.bitor_assign) #### fn [bitor\_assign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOrAssign.html#tymethod.bitor_assign) (&mut self, rhs: [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") ) Performs the `|=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitOrAssign.html#tymethod.bitor_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-BitXor%3C%26%27r%20H160%3E-for-%26%27l%20H160) ### impl<'l, 'r> [BitXor](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXor.html "trait core::ops::bit::BitXor") <&'r [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \> for &'l [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#associatedtype.Output-1) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXor.html#associatedtype.Output) = [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") The resulting type after applying the `^` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.bitxor-1) #### fn [bitxor](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXor.html#tymethod.bitxor) (self, rhs: &'r [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") ) -> <&'l [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") as [BitXor](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXor.html "trait core::ops::bit::BitXor") <&'r [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \>>::[Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXor.html#associatedtype.Output "type core::ops::bit::BitXor::Output") Performs the `^` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXor.html#tymethod.bitxor) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-BitXor%3CH160%3E-for-H160) ### impl [BitXor](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXor.html "trait core::ops::bit::BitXor") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \> for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#associatedtype.Output) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXor.html#associatedtype.Output) = [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") The resulting type after applying the `^` operator. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.bitxor) #### fn [bitxor](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXor.html#tymethod.bitxor) (self, rhs: [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") ) -> <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") as [BitXor](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXor.html "trait core::ops::bit::BitXor") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \>>::[Output](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXor.html#associatedtype.Output "type core::ops::bit::BitXor::Output") Performs the `^` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXor.html#tymethod.bitxor) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-BitXorAssign%3C%26%27r%20H160%3E-for-H160) ### impl<'r> [BitXorAssign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXorAssign.html "trait core::ops::bit::BitXorAssign") <&'r [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \> for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.bitxor_assign) #### fn [bitxor\_assign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXorAssign.html#tymethod.bitxor_assign) (&mut self, rhs: &'r [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") ) Performs the `^=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXorAssign.html#tymethod.bitxor_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-BitXorAssign%3CH160%3E-for-H160) ### impl [BitXorAssign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXorAssign.html "trait core::ops::bit::BitXorAssign") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \> for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.bitxor_assign-1) #### fn [bitxor\_assign](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXorAssign.html#tymethod.bitxor_assign) (&mut self, rhs: [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") ) Performs the `^=` operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/bit/trait.BitXorAssign.html#tymethod.bitxor_assign) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Clone-for-H160) ### impl [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.clone) #### fn [clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) (&self) -> [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") Returns a copy of the value. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.clone_from) #### fn [clone\_from](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) (&mut self, source: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Debug-for-H160) ### impl [Debug](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html "trait core::fmt::Debug") for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.fmt-2) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[()](https://doc.rust-lang.org/nightly/std/primitive.unit.html) , [Error](https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html "struct core::fmt::Error") \> Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Decodable-for-H160) ### impl Decodable for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.decode-1) #### fn decode(rlp: &Rlp<'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") , DecoderError> Decode a value from RLP bytes [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Decodable-for-H160-1) ### impl Decodable for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.decode-3) #### fn decode(buf: &mut &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") , DecodeError> [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Decode-for-H160) ### impl Decode for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.decode-2) #### fn decode(input: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) I) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") , Error>where     I: Input, Attempt to deserialise the value from input. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.skip) #### fn skip(input: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) I) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[()](https://doc.rust-lang.org/nightly/std/primitive.unit.html) , Error>where     I: Input, Attempt to skip the encoded value from input. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.encoded_fixed_size) #### fn encoded\_fixed\_size() -> [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") <[usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) \> Returns the fixed encoded size of the type. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Default-for-H160) ### impl [Default](https://doc.rust-lang.org/nightly/core/default/trait.Default.html "trait core::default::Default") for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.default) #### fn [default](https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default) () -> [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") Returns the “default value” for a type. [Read more](https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Deserialize%3C%27de%3E-for-H160) ### impl<'de> [Deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html "trait serde::de::Deserialize") <'de> for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.deserialize) #### fn [deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html#tymethod.deserialize) (     deserializer: D ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") , >::[Error](https://docs.rs/serde/1.0.163/serde/de/trait.Deserializer.html#associatedtype.Error "type serde::de::Deserializer::Error") \>where     D: [Deserializer](https://docs.rs/serde/1.0.163/serde/de/trait.Deserializer.html "trait serde::de::Deserializer") <'de>, Deserialize this value from the given Serde deserializer. [Read more](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html#tymethod.deserialize) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Display-for-H160) ### impl [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.fmt) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[()](https://doc.rust-lang.org/nightly/std/primitive.unit.html) , [Error](https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html "struct core::fmt::Error") \> Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Encodable-for-H160) ### impl Encodable for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.rlp_append) #### fn rlp\_append(&self, s: &mut RlpStream) Append a value to the stream [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.rlp_bytes) #### fn rlp\_bytes(&self) -> BytesMut Get rlp-encoded bytes for this instance [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Encodable-for-H160-1) ### impl Encodable for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.length) #### fn length(&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.encode-2) #### fn encode(&self, out: &mut dyn BufMut) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Encode-for-H160) ### impl Encode for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.using_encoded) #### fn using\_encoded(&self, f: F) -> Rwhere     F: [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (&\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) -> R, Convert self to a slice and then invoke the given closure with it. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.size_hint) #### fn size\_hint(&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) If possible give a hint of expected size of the encoding. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.encode_to) #### fn encode\_to(&self, dest: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)where     T: Output + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Convert self to a slice and append it to the destination. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.encode-1) #### fn encode(&self) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) , [Global](https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html "struct alloc::alloc::Global") \> Convert self to an owned vector. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.encoded_size) #### fn encoded\_size(&self) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Calculates the encoded size. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-From%3C%26%27a%20%5Bu8%3B%2020%5D%3E-for-H160) ### impl<'a> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&'a \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [20](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \]> for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.from-4) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (bytes: &'a \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [20](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \]) -> [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") Constructs a hash type from the given reference to the bytes array of fixed length. ##### [Note](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#note-9) The given bytes are interpreted in big endian order. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-From%3C%26%27a%20mut%20%5Bu8%3B%2020%5D%3E-for-H160) ### impl<'a> [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <&'a mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [20](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \]> for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.from-5) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (bytes: &'a mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [20](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \]) -> [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") Constructs a hash type from the given reference to the mutable bytes array of fixed length. ##### [Note](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#note-10) The given bytes are interpreted in big endian order. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-From%3C%5Bu8%3B%2020%5D%3E-for-H160) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [20](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \]> for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.from-3) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (bytes: \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [20](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \]) -> [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") Constructs a hash type from the given bytes array of fixed length. ##### [Note](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#note-8) The given bytes are interpreted in big endian order. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-From%3CH160%3E-for-%5Bu8%3B%2020%5D) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \> for \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [20](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \] [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.from-1) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (s: [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") ) -> \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ ; [20](https://doc.rust-lang.org/nightly/std/primitive.array.html)\ \] Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-From%3CH160%3E-for-H256) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \> for [H256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H256.html "struct zkevm_keccak::util::eth_types::H256") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.from) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") ) -> [H256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H256.html "struct zkevm_keccak::util::eth_types::H256") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-From%3CH256%3E-for-H160) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") <[H256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H256.html "struct zkevm_keccak::util::eth_types::H256") \> for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.from-2) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (value: [H256](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H256.html "struct zkevm_keccak::util::eth_types::H256") ) -> [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") Converts to this type from the input type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-FromStr-for-H160) ### impl [FromStr](https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html "trait core::str::traits::FromStr") for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.from_str) #### fn [from\_str](https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str) (input: &[str](https://doc.rust-lang.org/nightly/std/primitive.str.html) ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") , FromHexError> Creates a hash type instance from the given string. ##### [Note](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#note-11) The given input string is interpreted in big endian. ##### [Errors](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#errors) * When encountering invalid non hex-digits * Upon empty string input or invalid input length in general [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#associatedtype.Err) #### type [Err](https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err) = FromHexError The associated error which can be returned from parsing. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Hash-for-H160) ### impl [Hash](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html "trait core::hash::Hash") for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.hash) #### fn [hash](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash) (&self, state: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) H)where     H: [Hasher](https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html "trait core::hash::Hasher") , Feeds this value into the given [`Hasher`](https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html "Hasher") . [Read more](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash) 1.3.0 · [source](https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#237-239) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.hash_slice) #### fn [hash\_slice](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice) (data: &[\[Self\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) , state: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) H)where     H: [Hasher](https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html "trait core::hash::Hasher") ,     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Feeds a slice of this type into the given [`Hasher`](https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html "Hasher") . [Read more](https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Index%3CI%3E-for-H160) ### impl [Index](https://doc.rust-lang.org/nightly/core/ops/index/trait.Index.html "trait core::ops::index::Index") for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") where     I: [SliceIndex](https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html "trait core::slice::index::SliceIndex") <\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]>, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#associatedtype.Output-4) #### type [Output](https://doc.rust-lang.org/nightly/core/ops/index/trait.Index.html#associatedtype.Output) = >::[Output](https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html#associatedtype.Output "type core::slice::index::SliceIndex::Output") The returned type after indexing. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.index) #### fn [index](https://doc.rust-lang.org/nightly/core/ops/index/trait.Index.html#tymethod.index) (&self, index: I) -> &>::[Output](https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html#associatedtype.Output "type core::slice::index::SliceIndex::Output") Performs the indexing (`container[index]`) operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/index/trait.Index.html#tymethod.index) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-IndexMut%3CI%3E-for-H160) ### impl [IndexMut](https://doc.rust-lang.org/nightly/core/ops/index/trait.IndexMut.html "trait core::ops::index::IndexMut") for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") where     I: [SliceIndex](https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html "trait core::slice::index::SliceIndex") <\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \], Output = \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]>, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.index_mut) #### fn [index\_mut](https://doc.rust-lang.org/nightly/core/ops/index/trait.IndexMut.html#tymethod.index_mut) (&mut self, index: I) -> &mut >::[Output](https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html#associatedtype.Output "type core::slice::index::SliceIndex::Output") Performs the mutable indexing (`container[index]`) operation. [Read more](https://doc.rust-lang.org/nightly/core/ops/index/trait.IndexMut.html#tymethod.index_mut) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-LowerHex-for-H160) ### impl [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.fmt-3) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[()](https://doc.rust-lang.org/nightly/std/primitive.unit.html) , [Error](https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html "struct core::fmt::Error") \> Formats the value using the given formatter. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-MaxEncodedLen-for-H160) ### impl MaxEncodedLen for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.max_encoded_len) #### fn max\_encoded\_len() -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Upper bound, in bytes, of the maximum encoded size of this item. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Ord-for-H160) ### impl [Ord](https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html "trait core::cmp::Ord") for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.cmp) #### fn [cmp](https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp) (&self, other: &[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") ) -> [Ordering](https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html "enum core::cmp::Ordering") This method returns an [`Ordering`](https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html "Ordering") between `self` and `other`. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp) 1.21.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#795-798) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.max) #### fn [max](https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max) (self, other: Self) -> Selfwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Compares and returns the maximum of two values. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max) 1.21.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#822-825) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.min) #### fn [min](https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min) (self, other: Self) -> Selfwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Compares and returns the minimum of two values. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min) 1.50.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#854-858) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.clamp) #### fn [clamp](https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp) (self, min: Self, max: Self) -> Selfwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") + [PartialOrd](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html "trait core::cmp::PartialOrd") , Restrict a value to a certain interval. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-PartialEq%3CH160%3E-for-H160) ### impl [PartialEq](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html "trait core::cmp::PartialEq") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \> for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.eq) #### fn [eq](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq) (&self, other: &[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") ) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests for `self` and `other` values to be equal, and is used by `==`. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#227) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.ne) #### fn [ne](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne) (&self, other: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Rhs) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests for `!=`. The default implementation is almost always sufficient, and should not be overridden without very good reason. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-PartialOrd%3CH160%3E-for-H160) ### impl [PartialOrd](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html "trait core::cmp::PartialOrd") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \> for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.partial_cmp) #### fn [partial\_cmp](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp) (&self, other: &[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") ) -> [Option](https://doc.rust-lang.org/nightly/core/option/enum.Option.html "enum core::option::Option") <[Ordering](https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html "enum core::cmp::Ordering") \> This method returns an ordering between `self` and `other` values if one exists. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1119) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.lt) #### fn [lt](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt) (&self, other: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Rhs) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests less than (for `self` and `other`) and is used by the `<` operator. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1138) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.le) #### fn [le](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le) (&self, other: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Rhs) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests less than or equal to (for `self` and `other`) and is used by the `<=` operator. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1156) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.gt) #### fn [gt](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt) (&self, other: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Rhs) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests greater than (for `self` and `other`) and is used by the `>` operator. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt) 1.0.0 · [source](https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1175) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.ge) #### fn [ge](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge) (&self, other: [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Rhs) -> [bool](https://doc.rust-lang.org/nightly/std/primitive.bool.html) This method tests greater than or equal to (for `self` and `other`) and is used by the `>=` operator. [Read more](https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Serialize-for-H160) ### impl [Serialize](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html "trait serde::ser::Serialize") for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.serialize) #### fn [serialize](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html#tymethod.serialize) (     &self,     serializer: S ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <::[Ok](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html#associatedtype.Ok "type serde::ser::Serializer::Ok") , ::[Error](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html#associatedtype.Error "type serde::ser::Serializer::Error") \>where     S: [Serializer](https://docs.rs/serde/1.0.163/serde/ser/trait.Serializer.html "trait serde::ser::Serializer") , Serialize this value into the given Serde serializer. [Read more](https://docs.rs/serde/1.0.163/serde/ser/trait.Serialize.html#tymethod.serialize) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Tokenizable-for-H160) ### impl Tokenizable for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.from_token) #### fn from\_token(token: Token) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") , InvalidOutputType> Converts a `Token` into expected type. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.into_token) #### fn into\_token(self) -> Token Converts a specified type back into token. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-UpperHex-for-H160) ### impl [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.fmt-1) #### fn [fmt](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html#tymethod.fmt) (&self, f: &mut [Formatter](https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html "struct core::fmt::Formatter") <'\_>) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <[()](https://doc.rust-lang.org/nightly/std/primitive.unit.html) , [Error](https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html "struct core::fmt::Error") \> Formats the value using the given formatter. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-AbiArrayType-for-H160) ### impl AbiArrayType for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Copy-for-H160) ### impl [Copy](https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html "trait core::marker::Copy") for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-EncodeLike%3CH160%3E-for-H160) ### impl EncodeLike<[H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") \> for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Eq-for-H160) ### impl [Eq](https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html "trait core::cmp::Eq") for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-TokenizableItem-for-H160) ### impl TokenizableItem for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") Auto Trait Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#synthetic-implementations) ---------------------------------------------------------------------------------------------------------------------------------------------- [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-RefUnwindSafe-for-H160) ### impl [RefUnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html "trait core::panic::unwind_safe::RefUnwindSafe") for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Send-for-H160) ### impl [Send](https://doc.rust-lang.org/nightly/core/marker/trait.Send.html "trait core::marker::Send") for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Sync-for-H160) ### impl [Sync](https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html "trait core::marker::Sync") for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Unpin-for-H160) ### impl [Unpin](https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html "trait core::marker::Unpin") for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-UnwindSafe-for-H160) ### impl [UnwindSafe](https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html "trait core::panic::unwind_safe::UnwindSafe") for [H160](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html "struct zkevm_keccak::util::eth_types::H160") Blanket Implementations[](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#blanket-implementations) ----------------------------------------------------------------------------------------------------------------------------------------- [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#200) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Any-for-H160) ### impl [Any](https://doc.rust-lang.org/nightly/core/any/trait.Any.html "trait core::any::Any") for Twhere     T: 'static + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/core/any.rs.html#201) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.type_id) #### fn [type\_id](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) (&self) -> [TypeId](https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html "struct core::any::TypeId") Gets the `TypeId` of `self`. [Read more](https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-AsBits%3CT%3E-for-H160) ### impl AsBits for Awhere     A: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <[\[T\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) \>,     T: BitStore, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.as_bits) #### fn as\_bits(&self) -> &BitSlicewhere     O: BitOrder, Views `self` as an immutable bit-slice region with the `O` ordering. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.try_as_bits) #### fn try\_as\_bits(&self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <&BitSlice, BitSpanError>where     O: BitOrder, Attempts to view `self` as an immutable bit-slice region with the `O` ordering. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-AsByteSlice%3CT%3E-for-H160) ### impl AsByteSlice for Uwhere     T: ToByteSlice,     U: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <[\[T\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) \> + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.as_byte_slice) #### fn as\_byte\_slice(&self) -> &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]ⓘNotable traits for &mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]`impl [Write](https://doc.rust-lang.org/nightly/std/io/trait.Write.html "trait std::io::Write") for &mut [[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]impl [Read](https://doc.rust-lang.org/nightly/std/io/trait.Read.html "trait std::io::Read") for &[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]` [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-AsMutBits%3CT%3E-for-H160) ### impl AsMutBits for Awhere     A: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") <[\[T\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) \>,     T: BitStore, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.as_mut_bits) #### fn as\_mut\_bits(&mut self) -> &mut BitSlicewhere     O: BitOrder, Views `self` as a mutable bit-slice region with the `O` ordering. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.try_as_mut_bits) #### fn try\_as\_mut\_bits(&mut self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <&mut BitSlice, BitSpanError>where     O: BitOrder, Attempts to view `self` as a mutable bit-slice region with the `O` ordering. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-AsMutByteSlice%3CT%3E-for-H160) ### impl AsMutByteSlice for Uwhere     T: ToMutByteSlice,     U: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") <[\[T\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) \> + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.as_mut_byte_slice) #### fn as\_mut\_byte\_slice(&mut self) -> &mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]ⓘNotable traits for &mut \[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]`impl [Write](https://doc.rust-lang.org/nightly/std/io/trait.Write.html "trait std::io::Write") for &mut [[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]impl [Read](https://doc.rust-lang.org/nightly/std/io/trait.Read.html "trait std::io::Read") for &[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) ]` [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-AsMutSliceOf-for-H160) ### impl AsMutSliceOf for Uwhere     U: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") <\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]> + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.as_mut_slice_of) #### fn as\_mut\_slice\_of(&mut self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <&mut [\[T\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) , Error>where     T: FromByteSlice, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-AsSliceOf-for-H160) ### impl AsSliceOf for Uwhere     U: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]> + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.as_slice_of) #### fn as\_slice\_of(&self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") <&[\[T\]](https://doc.rust-lang.org/nightly/std/primitive.slice.html) , Error>where     T: FromByteSlice, [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Borrow%3CT%3E-for-H160) ### impl [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.borrow) #### fn [borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) (&self) -> [&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Immutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow) [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-BorrowMut%3CT%3E-for-H160) ### impl [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , const: [unstable](https://github.com/rust-lang/rust/issues/91522 "Tracking issue for const_borrow") · [source](https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.borrow_mut) #### fn [borrow\_mut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) (&mut self) -> [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably borrows from an owned value. [Read more](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Conv-for-H160) ### impl Conv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.conv) #### fn conv(self) -> Twhere     Self: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Converts `self` into `T` using `Into`. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-DecodeAll-for-H160) ### impl DecodeAll for Twhere     T: Decode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.decode_all) #### fn decode\_all(input: &mut &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") Decode `Self` and consume all of the given input data. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-DecodeLimit-for-H160) ### impl DecodeLimit for Twhere     T: Decode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.decode_all_with_depth_limit) #### fn decode\_all\_with\_depth\_limit(limit: [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) , input: &mut &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") Decode `Self` and consume all of the given input data. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.decode_with_depth_limit) #### fn decode\_with\_depth\_limit(limit: [u32](https://doc.rust-lang.org/nightly/std/primitive.u32.html) , input: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) I) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     I: Input, Decode `Self` with the given maximum recursion depth and advance `input` by the number of bytes consumed. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Detokenize-for-H160) ### impl Detokenize for Twhere     T: Tokenizable, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.from_tokens) #### fn from\_tokens(tokens: [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") ) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") Creates a new instance from parsed ABI tokens. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-FmtForward-for-H160) ### impl FmtForward for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.fmt_binary) #### fn fmt\_binary(self) -> FmtBinarywhere     Self: [Binary](https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html "trait core::fmt::Binary") , Causes `self` to use its `Binary` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.fmt_display) #### fn fmt\_display(self) -> FmtDisplaywhere     Self: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") , Causes `self` to use its `Display` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.fmt_lower_exp) #### fn fmt\_lower\_exp(self) -> FmtLowerExpwhere     Self: [LowerExp](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html "trait core::fmt::LowerExp") , Causes `self` to use its `LowerExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.fmt_lower_hex) #### fn fmt\_lower\_hex(self) -> FmtLowerHexwhere     Self: [LowerHex](https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html "trait core::fmt::LowerHex") , Causes `self` to use its `LowerHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.fmt_octal) #### fn fmt\_octal(self) -> FmtOctalwhere     Self: [Octal](https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html "trait core::fmt::Octal") , Causes `self` to use its `Octal` implementation when `Debug`\-formatted. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.fmt_pointer) #### fn fmt\_pointer(self) -> FmtPointerwhere     Self: [Pointer](https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html "trait core::fmt::Pointer") , Causes `self` to use its `Pointer` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.fmt_upper_exp) #### fn fmt\_upper\_exp(self) -> FmtUpperExpwhere     Self: [UpperExp](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html "trait core::fmt::UpperExp") , Causes `self` to use its `UpperExp` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.fmt_upper_hex) #### fn fmt\_upper\_hex(self) -> FmtUpperHexwhere     Self: [UpperHex](https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html "trait core::fmt::UpperHex") , Causes `self` to use its `UpperHex` implementation when `Debug`\-formatted. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.fmt_list) #### fn fmt\_list(self) -> FmtListwhere     [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self: for<'a> [IntoIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html "trait core::iter::traits::collect::IntoIterator") , Formats each item in a sequence. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-From%3CT%3E-for-H160) ### impl [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") for T const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.from-6) #### fn [from](https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from) (t: T) -> T Returns the argument unchanged. [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Instrument-for-H160) ### impl [Instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html "trait tracing::instrument::Instrument") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.instrument) #### fn [instrument](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) (self, span: [Span](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "struct tracing::span::Span") ) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the provided [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html "Span") , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.in_current_span) #### fn [in\_current\_span](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) (self) -> [Instrumented](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html "struct tracing::instrument::Instrumented") Instruments this type with the [current](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current) [`Span`](https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html) , returning an `Instrumented` wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span) [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Into%3CU%3E-for-H160) ### impl [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") for Twhere     U: [From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "trait core::convert::From") , const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.into) #### fn [into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into) (self) -> U Calls `U::from(self)`. That is, this conversion is whatever the implementation of `[From](https://doc.rust-lang.org/nightly/core/convert/trait.From.html "From") for U` chooses to do. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-KeyedVec-for-H160) ### impl KeyedVec for Twhere     T: Codec, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.to_keyed_vec) #### fn to\_keyed\_vec(&self, prepend\_key: &\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") <[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html) , [Global](https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html "struct alloc::alloc::Global") \> Return an encoding of `Self` prepended by given slice. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Pipe-for-H160) ### impl Pipe for Twhere     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.pipe) #### fn pipe(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") (Self) -> R) -> Rwhere     Self: [Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Pipes by value. This is generally the method you want to use. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.pipe_ref) #### fn pipe\_ref<'a, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.pipe_ref_mut) #### fn pipe\_ref\_mut<'a, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self) -> R) -> Rwhere     R: 'a, Mutably borrows `self` and passes that borrow into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.pipe_borrow) #### fn pipe\_borrow<'a, B, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R) -> Rwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.borrow()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.pipe_borrow_mut) #### fn pipe\_borrow\_mut<'a, B, R>(     &'a mut self,     func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B) -> R ) -> Rwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.borrow_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.pipe_as_ref) #### fn pipe\_as\_ref<'a, U, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.as_ref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.pipe_as_mut) #### fn pipe\_as\_mut<'a, U, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) U) -> R) -> Rwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     U: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.as_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.pipe_deref) #### fn pipe\_deref<'a, T, R>(&'a self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Borrows `self`, then passes `self.deref()` into the pipe function. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.pipe_deref_mut) #### fn pipe\_deref\_mut<'a, T, R>(&'a mut self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) -> R) -> Rwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: 'a + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") ,     R: 'a, Mutably borrows `self`, then passes `self.deref_mut()` into the pipe function. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Pointable-for-H160) ### impl Pointable for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#associatedconstant.ALIGN) #### const ALIGN: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) = mem::align\_of::() The alignment of pointer. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#associatedtype.Init) #### type Init = T The type for initializers. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.init) #### unsafe fn init(init: ::Init) -> [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) Initializes a with the given initializer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.deref) #### unsafe fn deref<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.deref_mut) #### unsafe fn deref\_mut<'a>(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) -> [&'a mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T Mutably dereferences the given pointer. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.drop) #### unsafe fn drop(ptr: [usize](https://doc.rust-lang.org/nightly/std/primitive.usize.html) ) Drops the object pointed to by the given pointer. Read more [source](https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Same%3CT%3E-for-H160) ### impl [Same](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html "trait typenum::type_operators::Same") for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#associatedtype.Output-7) #### type [Output](https://docs.rs/typenum/1.16.0/typenum/type_operators/trait.Same.html#associatedtype.Output) = T Should always be `Self` [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Tap-for-H160) ### impl Tap for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.tap) #### fn tap(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Immutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.tap_mut) #### fn tap\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Mutable access to a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.tap_borrow) #### fn tap\_borrow(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Borrow` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.tap_borrow_mut) #### fn tap\_borrow\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `BorrowMut` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.tap_ref) #### fn tap\_ref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `AsRef` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.tap_ref_mut) #### fn tap\_ref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `AsMut` view of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.tap_deref) #### fn tap\_deref(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Immutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.tap_deref_mut) #### fn tap\_deref\_mut(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Mutable access to the `Deref::Target` of a value. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.tap_dbg) #### fn tap\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap()` only in debug builds, and is erased in release builds. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.tap_mut_dbg) #### fn tap\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) Self)) -> Self Calls `.tap_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.tap_borrow_dbg) #### fn tap\_borrow\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [Borrow](https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html "trait core::borrow::Borrow") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.tap_borrow_mut_dbg) #### fn tap\_borrow\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) B)) -> Selfwhere     Self: [BorrowMut](https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html "trait core::borrow::BorrowMut") ,     B: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_borrow_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.tap_ref_dbg) #### fn tap\_ref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.tap_ref_mut_dbg) #### fn tap\_ref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) R)) -> Selfwhere     Self: [AsMut](https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html "trait core::convert::AsMut") ,     R: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_ref_mut()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.tap_deref_dbg) #### fn tap\_deref\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref()` only in debug builds, and is erased in release builds. Read more [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.tap_deref_mut_dbg) #### fn tap\_deref\_mut\_dbg(self, func: impl [FnOnce](https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html "trait core::ops::function::FnOnce") ([&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T)) -> Selfwhere     Self: [DerefMut](https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html "trait core::ops::deref::DerefMut") + [Deref](https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html "trait core::ops::deref::Deref") ,     T: ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , Calls `.tap_deref_mut()` only in debug builds, and is erased in release builds. Read more [source](https://docs.rs/hex/0.4.3/src/hex/lib.rs.html#137) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-ToHex-for-H160) ### impl [ToHex](https://docs.rs/hex/0.4.3/hex/trait.ToHex.html "trait hex::ToHex") for Twhere     T: [AsRef](https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html "trait core::convert::AsRef") <\[[u8](https://doc.rust-lang.org/nightly/std/primitive.u8.html)\ \]>, [source](https://docs.rs/hex/0.4.3/src/hex/lib.rs.html#138) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.encode_hex-1) #### fn [encode\_hex](https://docs.rs/hex/0.4.3/hex/trait.ToHex.html#tymethod.encode_hex) (&self) -> Uwhere     U: [FromIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.FromIterator.html "trait core::iter::traits::collect::FromIterator") <[char](https://doc.rust-lang.org/nightly/std/primitive.char.html) \>, Encode the hex strict representing `self` into the result. Lower case letters are used (e.g. `f9b4ca`) [Read more](https://docs.rs/hex/0.4.3/hex/trait.ToHex.html#tymethod.encode_hex) [source](https://docs.rs/hex/0.4.3/src/hex/lib.rs.html#142) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.encode_hex_upper) #### fn [encode\_hex\_upper](https://docs.rs/hex/0.4.3/hex/trait.ToHex.html#tymethod.encode_hex_upper) (&self) -> Uwhere     U: [FromIterator](https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.FromIterator.html "trait core::iter::traits::collect::FromIterator") <[char](https://doc.rust-lang.org/nightly/std/primitive.char.html) \>, Encode the hex strict representing `self` into the result. Upper case letters are used (e.g. `F9B4CA`) [Read more](https://docs.rs/hex/0.4.3/hex/trait.ToHex.html#tymethod.encode_hex_upper) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-ToOwned-for-H160) ### impl [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") for Twhere     T: [Clone](https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html "trait core::clone::Clone") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#associatedtype.Owned) #### type [Owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned) = T The resulting type after obtaining ownership. [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.to_owned) #### fn [to\_owned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) (&self) -> T Creates owned data from borrowed data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned) [source](https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.clone_into) #### fn [clone\_into](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) (&self, target: [&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T) Uses borrowed data to replace owned data, usually by cloning. [Read more](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into) [source](https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-ToString-for-H160) ### impl [ToString](https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html "trait alloc::string::ToString") for Twhere     T: [Display](https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html "trait core::fmt::Display") + ?[Sized](https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html "trait core::marker::Sized") , [source](https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.to_string) #### default fn [to\_string](https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string) (&self) -> [String](https://doc.rust-lang.org/nightly/alloc/string/struct.String.html "struct alloc::string::String") Converts the given value to a `String`. [Read more](https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Tokenize-for-H160) ### impl Tokenize for Twhere     T: Tokenizable, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.into_tokens) #### fn into\_tokens(self) -> [Vec](https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html "struct alloc::vec::Vec") Convert to list of tokens [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-TryConv-for-H160) ### impl TryConv for T [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.try_conv) #### fn try\_conv(self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") where     Self: [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") , Attempts to convert `self` into `T` using `TryInto`. Read more [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-TryFrom%3CU%3E-for-H160) ### impl [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") for Twhere     U: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#associatedtype.Error-1) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error) = [Infallible](https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html "enum core::convert::Infallible") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.try_from) #### fn [try\_from](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from) (value: U) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-TryInto%3CU%3E-for-H160) ### impl [TryInto](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html "trait core::convert::TryInto") for Twhere     U: [TryFrom](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html "trait core::convert::TryFrom") , [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#associatedtype.Error) #### type [Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error) = >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") The type returned in the event of a conversion error. const: [unstable](https://github.com/rust-lang/rust/issues/88674 "Tracking issue for const_convert") · [source](https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.try_into) #### fn [try\_into](https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into) (self) -> [Result](https://doc.rust-lang.org/nightly/core/result/enum.Result.html "enum core::result::Result") >::[Error](https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error "type core::convert::TryFrom::Error") \> Performs the conversion. [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-VZip%3CV%3E-for-H160) ### impl VZip for Twhere     V: MultiLane, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.vzip) #### fn vzip(self) -> V [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-WithSubscriber-for-H160) ### impl [WithSubscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html "trait tracing::instrument::WithSubscriber") for T [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.with_subscriber) #### fn [with\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) (self, subscriber: S) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") where     S: [Into](https://doc.rust-lang.org/nightly/core/convert/trait.Into.html "trait core::convert::Into") , Attaches the provided [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber) [source](https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#method.with_current_subscriber) #### fn [with\_current\_subscriber](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) (self) -> [WithDispatch](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "struct tracing::instrument::WithDispatch") Attaches the current [default](https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber) [`Subscriber`](super::Subscriber) to this type, returning a [`WithDispatch`](https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html "WithDispatch") wrapper. [Read more](https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-Codec-for-H160) ### impl Codec for Swhere     S: Decode + Encode, [source](https://docs.rs/serde/1.0.163/src/serde/de/mod.rs.html#604) [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-DeserializeOwned-for-H160) ### impl [DeserializeOwned](https://docs.rs/serde/1.0.163/serde/de/trait.DeserializeOwned.html "trait serde::de::DeserializeOwned") for Twhere     T: for<'de> [Deserialize](https://docs.rs/serde/1.0.163/serde/de/trait.Deserialize.html "trait serde::de::Deserialize") <'de>, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-EncodeLike%3C%26%26T%3E-for-H160) ### impl EncodeLike<&[&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T> for Twhere     T: Encode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-EncodeLike%3C%26T%3E-for-H160) ### impl EncodeLike<[&](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T> for Twhere     T: Encode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-EncodeLike%3C%26mut%20T%3E-for-H160) ### impl EncodeLike<[&mut](https://doc.rust-lang.org/nightly/std/primitive.reference.html) T> for Twhere     T: Encode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-EncodeLike%3CArc%3CT%3E%3E-for-H160) ### impl EncodeLike<[Arc](https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html "struct alloc::sync::Arc") > for Twhere     T: Encode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-EncodeLike%3CBox%3CT%2C%20Global%3E%3E-for-H160) ### impl EncodeLike<[Box](https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html "struct alloc::boxed::Box") > for Twhere     T: Encode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-EncodeLike%3CCow%3C%27a%2C%20T%3E%3E-for-H160) ### impl<'a, T> EncodeLike<[Cow](https://doc.rust-lang.org/nightly/alloc/borrow/enum.Cow.html "enum alloc::borrow::Cow") <'a, T>> for Twhere     T: [ToOwned](https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html "trait alloc::borrow::ToOwned") + Encode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-EncodeLike%3CRc%3CT%3E%3E-for-H160) ### impl EncodeLike<[Rc](https://doc.rust-lang.org/nightly/alloc/rc/struct.Rc.html "struct alloc::rc::Rc") > for Twhere     T: Encode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-FullCodec-for-H160) ### impl FullCodec for Swhere     S: Decode + FullEncode, [](https://axiom-crypto.github.io/halo2-lib/zkevm_keccak/util/eth_types/struct.H160.html#impl-FullEncode-for-H160) ### impl FullEncode for Swhere     S: Encode + EncodeLike, ---