#[repr(u32)]pub enum SectionTag {
Show 26 variants
Sid = 1,
Gates = 2,
GateCoeffs = 3,
Coefficients8Base = 16,
GenericSelector4 = 32,
PoseidonSelector8 = 33,
CompleteAddSelector4 = 34,
MulSelector8 = 35,
EmulSelector8 = 36,
EndomulScalarSelector8 = 37,
PermutationCoefficients8Base = 48,
RangeCheck0Selector8 = 64,
RangeCheck1Selector8 = 65,
ForeignFieldAddSelector8 = 66,
ForeignFieldMulSelector8 = 67,
XorSelector8 = 68,
RotSelector8 = 69,
LookupTable8 = 80,
TableIds8 = 81,
LookupSelectorXor = 82,
LookupSelectorLookup = 83,
LookupSelectorRangeCheck = 84,
LookupSelectorFfmul = 85,
RuntimeSelector8 = 86,
RuntimeTablesSpec = 87,
RuntimeTableOffset = 88,
}Expand description
Tags identifying the different payload sections in the section table. Tag values are stable across format versions within the same major version and must never be reused for a different meaning.
The numbering is intentionally sparse: Coefficients8Base (0x10) and
PermutationCoefficients8Base (0x30) are bases — the i-th column’s tag
is base + i (see coefficient_tag / permutation_coefficient_tag),
so 0x11..=0x1E and 0x31..=0x36 are implicitly reserved. The static
assertions below guard the gaps up to the next explicit tag.
Variants§
Sid = 1
sid: Vec<F>.
Gates = 2
Packed [PrunedGate] array.
GateCoeffs = 3
Per-gate coefficient vectors, in gate order: for each gate a u32
count followed by count field elements (four LE u64 limbs each).
Needed only by the debug-build gate sanity check, not by the prover.
Coefficients8Base = 16
Coefficients 0..=14 over domain d8 (one tag per column, sparse: occupies 0x10..=0x1E).
GenericSelector4 = 32
Generic-gate selector over domain d4.
PoseidonSelector8 = 33
Poseidon-gate selector over domain d8.
CompleteAddSelector4 = 34
Complete-add selector over domain d4.
MulSelector8 = 35
Variable-base scalar-mul selector over domain d8.
EmulSelector8 = 36
Endo scalar-mul selector over domain d8.
EndomulScalarSelector8 = 37
Endo-mul-scalar selector over domain d8.
PermutationCoefficients8Base = 48
Permutation coefficients 0..=6 over domain d8 (one tag per column, sparse: occupies 0x30..=0x36).
RangeCheck0Selector8 = 64
Optional RangeCheck0 selector over domain d8.
RangeCheck1Selector8 = 65
Optional RangeCheck1 selector over domain d8.
ForeignFieldAddSelector8 = 66
Optional ForeignFieldAdd selector over domain d8.
ForeignFieldMulSelector8 = 67
Optional ForeignFieldMul selector over domain d8.
XorSelector8 = 68
Optional Xor16 selector over domain d8.
RotSelector8 = 69
Optional Rot64 selector over domain d8.
LookupTable8 = 80
Concatenated lookup_table8 payload: count × d8_size × 32 bytes
of field elements. The count of inner arrays is stored in the
section-table entry’s elem_domain_size, keeping the payload
32-byte aligned for zero-copy slice construction.
TableIds8 = 81
table_ids8 over d8. Present iff LookupSelectorBits::TABLE_IDS8.
LookupSelectorXor = 82
lookup_selectors.xor over d8. Presence per LookupSelectorBits.
LookupSelectorLookup = 83
lookup_selectors.lookup over d8.
LookupSelectorRangeCheck = 84
lookup_selectors.range_check over d8.
LookupSelectorFfmul = 85
lookup_selectors.ffmul over d8.
RuntimeSelector8 = 86
runtime_selector over d8.
RuntimeTablesSpec = 87
runtime_tables spec: u32 count, then count × (id:i32, len:u32).
RuntimeTableOffset = 88
runtime_table_offset: 8-byte little-endian u64.
Implementations§
Trait Implementations§
Source§impl Clone for SectionTag
impl Clone for SectionTag
Source§fn clone(&self) -> SectionTag
fn clone(&self) -> SectionTag
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for SectionTag
Source§impl Debug for SectionTag
impl Debug for SectionTag
impl Eq for SectionTag
Source§impl PartialEq for SectionTag
impl PartialEq for SectionTag
impl StructuralPartialEq for SectionTag
Auto Trait Implementations§
impl Freeze for SectionTag
impl RefUnwindSafe for SectionTag
impl Send for SectionTag
impl Sync for SectionTag
impl Unpin for SectionTag
impl UnsafeUnpin for SectionTag
impl UnwindSafe for SectionTag
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.