From 273d347d229dfb90e3cfd404ed36633acae004c0 Mon Sep 17 00:00:00 2001 From: ivanlele Date: Fri, 6 Mar 2026 16:30:21 +0200 Subject: [PATCH] Separate Jet env from Jet trait --- jets-bench/benches/elements/main.rs | 14 +- jets-bench/src/input.rs | 18 +- src/bit_machine/mod.rs | 33 +- src/human_encoding/mod.rs | 34 +- src/human_encoding/parse/mod.rs | 18 +- src/jet/init/bitcoin.rs | 91 +- src/jet/init/core.rs | 841 ++++++++++--------- src/jet/init/elements.rs | 1213 ++++++++++++++++----------- src/jet/mod.rs | 34 +- src/node/construct.rs | 8 +- src/node/redeem.rs | 29 +- 11 files changed, 1313 insertions(+), 1020 deletions(-) diff --git a/jets-bench/benches/elements/main.rs b/jets-bench/benches/elements/main.rs index d44f50e9..e270ff3a 100644 --- a/jets-bench/benches/elements/main.rs +++ b/jets-bench/benches/elements/main.rs @@ -5,13 +5,13 @@ use elements::confidential; use rand::rngs::ThreadRng; use simplicity::elements; use simplicity::jet::elements::ElementsEnv; -use simplicity::jet::{Elements, Jet}; +use simplicity::jet::{Elements, ElementsTxEnv, Jet, JetEnvironment}; use simplicity::types; use simplicity::types::Final; use simplicity::Value; use simplicity_bench::input::{ - self, EqProduct, GenericProduct, InputSample, PrefixBit, Sha256Ctx, UniformBits, - DivMod12864Input, + self, DivMod12864Input, EqProduct, GenericProduct, InputSample, PrefixBit, Sha256Ctx, + UniformBits, }; use simplicity_bench::{ genesis_pegin, BenchSample, EnvSampling, InputSampling, JetBuffer, JetParams, SimplicityCtx8, @@ -625,7 +625,7 @@ fn bench(c: &mut Criterion) { let (src, dst) = buffer.write(&src_ty, params, &mut rng); (dst, src, &env, buffer) }, - |(mut dst, src, env, _buffer)| jet.c_jet_ptr()(&mut dst, src, env.c_tx_env()), + |(mut dst, src, env, _buffer)| ElementsTxEnv::c_jet_ptr(&jet)(&mut dst, src, env.c_tx_env()), BatchSize::SmallInput, ) }); @@ -743,7 +743,7 @@ fn bench(c: &mut Criterion) { let (src, dst) = buffer.write(&src_ty, params, &mut rng); (dst, src, buffer) }, - |(mut dst, src, _buffer)| jet.c_jet_ptr()(&mut dst, src, env.c_tx_env()), + |(mut dst, src, _buffer)| ElementsTxEnv::c_jet_ptr(&jet)(&mut dst, src, env.c_tx_env()), BatchSize::SmallInput, ) }); @@ -806,7 +806,7 @@ fn bench(c: &mut Criterion) { let (src, dst) = buffer.write(&src_ty, params, &mut rng); (dst, src, buffer) }, - |(mut dst, src, _buffer)| jet.c_jet_ptr()(&mut dst, src, env.c_tx_env()), + |(mut dst, src, _buffer)| ElementsTxEnv::c_jet_ptr(&jet)(&mut dst, src, env.c_tx_env()), BatchSize::SmallInput, ) }); @@ -903,7 +903,7 @@ fn bench(c: &mut Criterion) { let (src, dst) = buffer.write(&src_ty, params, &mut rng); (dst, src, buffer) }, - |(mut dst, src, _buffer)| jet.c_jet_ptr()(&mut dst, src, env.c_tx_env()), + |(mut dst, src, _buffer)| ElementsTxEnv::c_jet_ptr(&jet)(&mut dst, src, env.c_tx_env()), BatchSize::SmallInput, ) }); diff --git a/jets-bench/src/input.rs b/jets-bench/src/input.rs index 8b6ed0ba..c6c3f84f 100644 --- a/jets-bench/src/input.rs +++ b/jets-bench/src/input.rs @@ -8,7 +8,7 @@ use simplicity::ffi::c_jets::frame_ffi::c_writeBit; use simplicity::ffi::ffi::UWORD; use simplicity::ffi::CFrameItem; use simplicity::hashes::Hash; -use simplicity::jet::Elements; +use simplicity::jet::{Elements, ElementsTxEnv, JetEnvironment}; use simplicity::types::{self, CompleteBound}; use simplicity::Value; @@ -296,7 +296,6 @@ impl FlatValue { fn call_jet(&self, jet: Elements, dest_bits: usize) -> Self { use core::{mem, ptr}; use simplicity::ffi::c_jets::uword_width; - use simplicity::jet::Jet as _; assert!(dest_bits <= 8 * MAX_VALUE_BYTES); let mut ret = Self::zero_n_bits(dest_bits); @@ -354,10 +353,11 @@ impl FlatValue { // We can assert this because in our sampling code jets should never // fail. In the benchmarking code they might. - assert!(jet.c_jet_ptr()( + + assert!(ElementsTxEnv::c_jet_ptr(&jet)( &mut dst_write_frame, src_read_frame, - Elements::c_jet_env(&env) + env.c_tx_env() )); // The write frame winds up as an array of usizes with all bytes in // reverse order. (The bytes of the usizes are in reverse order due @@ -1366,8 +1366,12 @@ impl InputSample for DivMod12864Input { for (bit1, bit2) in sample_1.bit_iter().zip(sample_2.bit_iter()) { match (bit1, bit2) { (false, false) | (true, true) => {} // both equal - (true, false) => return FlatValue::product(&[sample_2, UniformBits.sample(0, 64), sample_1]), - (false, true) => return FlatValue::product(&[sample_1, UniformBits.sample(0, 64), sample_2]), + (true, false) => { + return FlatValue::product(&[sample_2, UniformBits.sample(0, 64), sample_1]) + } + (false, true) => { + return FlatValue::product(&[sample_1, UniformBits.sample(0, 64), sample_2]) + } } } unreachable!("if we get here, two uniform 63-bit samples were exactly equal") @@ -1428,7 +1432,7 @@ mod tests { let (src, mut dst) = buffer.write(&src_ty, ¶ms, &mut rand::thread_rng()); - jet.c_jet_ptr()(&mut dst, src, env.c_tx_env()); + ElementsTxEnv::c_jet_ptr(&jet)(&mut dst, src, env.c_tx_env()); } #[test] diff --git a/src/bit_machine/mod.rs b/src/bit_machine/mod.rs index 39c7b35e..cb815157 100644 --- a/src/bit_machine/mod.rs +++ b/src/bit_machine/mod.rs @@ -15,6 +15,7 @@ use std::fmt; use std::sync::Arc; use crate::analysis; +use crate::jet::JetEnvironment; use crate::jet::{Jet, JetFailed}; use crate::node::{self, RedeemNode}; use crate::types::Final; @@ -60,9 +61,9 @@ impl BitMachine { } #[cfg(test)] - pub fn test_exec( - program: Arc>, - env: &J::Environment, + pub fn test_exec( + program: Arc>, + env: &JE, ) -> Result { use crate::node::SimpleFinalizer; @@ -220,10 +221,10 @@ impl BitMachine { /// ## Precondition /// /// The Bit Machine is constructed via [`Self::for_program()`] to ensure enough space. - pub fn exec( + pub fn exec( &mut self, - program: &RedeemNode, - env: &J::Environment, + program: &RedeemNode, + env: &JE, ) -> Result { self.exec_with_tracker(program, env, &mut NoTracker) } @@ -236,14 +237,14 @@ impl BitMachine { /// ## Precondition /// /// The Bit Machine is constructed via [`Self::for_program()`] to ensure enough space. - pub fn exec_with_tracker>( + pub fn exec_with_tracker>( &mut self, - program: &RedeemNode, - env: &J::Environment, + program: &RedeemNode, + env: &JE, tracker: &mut T, ) -> Result { - enum CallStack<'a, J: Jet> { - Goto(&'a RedeemNode), + enum CallStack<'a, JE: JetEnvironment> { + Goto(&'a RedeemNode), MoveWriteFrameToRead, DropReadFrame, CopyFwd(usize), @@ -251,7 +252,7 @@ impl BitMachine { } // Not used, but useful for debugging, so keep it around - impl fmt::Debug for CallStack<'_, J> { + impl fmt::Debug for CallStack<'_, JE> { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match self { CallStack::Goto(ins) => write!(f, "goto {}", ins.inner()), @@ -268,7 +269,7 @@ impl BitMachine { } let mut ip = program; - let mut call_stack = vec![]; + let mut call_stack: Vec> = vec![]; let output_width = ip.arrow().target.bit_width(); if output_width > 0 { @@ -435,7 +436,7 @@ impl BitMachine { } } - fn exec_jet(&mut self, jet: J, env: &J::Environment) -> Result<(), JetFailed> { + fn exec_jet(&mut self, jet: JE::Jet, env: &JE) -> Result<(), JetFailed> { use crate::ffi::c_jets::frame_ffi::{c_readBit, c_writeBit, CFrameItem}; use crate::ffi::c_jets::uword_width; use crate::ffi::ffi::UWORD; @@ -524,8 +525,8 @@ impl BitMachine { let (input_read_frame, _input_buffer) = unsafe { get_input_frame(self, input_width) }; let (mut output_write_frame, output_buffer) = unsafe { get_output_frame(output_width) }; - let jet_fn = jet.c_jet_ptr(); - let c_env = J::c_jet_env(env); + let jet_fn = JE::c_jet_ptr(&jet); + let c_env = env.c_jet_env(); let success = jet_fn(&mut output_write_frame, input_read_frame, c_env); if !success { diff --git a/src/human_encoding/mod.rs b/src/human_encoding/mod.rs index 4db0b355..2006afcc 100644 --- a/src/human_encoding/mod.rs +++ b/src/human_encoding/mod.rs @@ -224,19 +224,19 @@ impl Forest { #[cfg(test)] mod tests { use crate::human_encoding::Forest; - use crate::jet::{Core, Jet}; + use crate::jet::{CoreEnv, JetEnvironment}; use crate::types; use crate::{BitMachine, Value}; use std::collections::HashMap; use std::sync::Arc; - fn assert_finalize_ok( + fn assert_finalize_ok( s: &str, witness: &HashMap, Value>, - env: &J::Environment, + env: &JE, ) { types::Context::with_context(|ctx| { - let program = Forest::::parse(s) + let program = Forest::::parse(s) .expect("Failed to parse human encoding") .to_witness_node(&ctx, witness) .expect("Forest is missing expected root") @@ -247,14 +247,14 @@ mod tests { }); } - fn assert_finalize_err( + fn assert_finalize_err( s: &str, witness: &HashMap, Value>, - env: &J::Environment, + env: &JE, err_msg: &'static str, ) { types::Context::with_context(|ctx| { - let program = match Forest::::parse(s) + let program = match Forest::::parse(s) .expect("Failed to parse human encoding") .to_witness_node(&ctx, witness) .expect("Forest is missing expected root") @@ -290,19 +290,19 @@ mod tests { (Arc::from("a"), Value::u8(0x00)), (Arc::from("b"), Value::u8(0x01)), ]); - assert_finalize_ok::(s, &a_less_than_b, &()); + assert_finalize_ok::(s, &a_less_than_b, &()); let b_greater_equal_a = HashMap::from([ (Arc::from("a"), Value::u8(0x01)), (Arc::from("b"), Value::u8(0x01)), ]); - assert_finalize_err::(s, &b_greater_equal_a, &(), "Jet failed during execution"); + assert_finalize_err::(s, &b_greater_equal_a, &(), "Jet failed during execution"); } #[test] fn executed_witness_without_value() { let witness = HashMap::from([(Arc::from("wit1"), Value::u32(1337))]); - assert_finalize_err::( + assert_finalize_err::( " wit1 := witness : 1 -> 2^32 wit2 := witness : 1 -> 2^32 @@ -326,22 +326,22 @@ mod tests { main := comp input comp process jet_verify : 1 -> 1 "; let wit2_is_pruned = HashMap::from([(Arc::from("wit1"), Value::u1(0))]); - assert_finalize_ok::(s, &wit2_is_pruned, &()); + assert_finalize_ok::(s, &wit2_is_pruned, &()); let wit2_is_missing = HashMap::from([(Arc::from("wit1"), Value::u1(1))]); - assert_finalize_err::(s, &wit2_is_missing, &(), "Jet failed during execution"); + assert_finalize_err::(s, &wit2_is_missing, &(), "Jet failed during execution"); let wit2_is_present = HashMap::from([ (Arc::from("wit1"), Value::u1(1)), (Arc::from("wit2"), Value::u64(u64::MAX)), ]); - assert_finalize_ok::(s, &wit2_is_present, &()); + assert_finalize_ok::(s, &wit2_is_present, &()); } #[test] fn executed_hole_with_value() { let empty = HashMap::new(); - assert_finalize_ok::( + assert_finalize_ok::( " id1 := iden : 2^256 * 1 -> 2^256 * 1 main := comp (disconnect id1 ?hole) unit @@ -355,7 +355,7 @@ mod tests { #[test] fn executed_hole_without_value() { let empty = HashMap::new(); - assert_finalize_err::( + assert_finalize_err::( " wit1 := witness main := comp wit1 comp disconnect iden ?dis2 unit @@ -374,9 +374,9 @@ mod tests { main := comp wit2 jet_verify : 1 -> 1 "; let wit1_populated = HashMap::from([(Arc::from("wit1"), Value::u1(1))]); - assert_finalize_err::(s, &wit1_populated, &(), "Jet failed during execution"); + assert_finalize_err::(s, &wit1_populated, &(), "Jet failed during execution"); let wit2_populated = HashMap::from([(Arc::from("wit2"), Value::u1(1))]); - assert_finalize_ok::(s, &wit2_populated, &()); + assert_finalize_ok::(s, &wit2_populated, &()); } } diff --git a/src/human_encoding/parse/mod.rs b/src/human_encoding/parse/mod.rs index 90d5c121..0c018f92 100644 --- a/src/human_encoding/parse/mod.rs +++ b/src/human_encoding/parse/mod.rs @@ -586,18 +586,18 @@ mod tests { use crate::dag::MaxSharing; use crate::human_encoding::Forest; - use crate::jet::{Core, Jet}; + use crate::jet::{Core, CoreEnv, Jet, JetEnvironment}; use crate::node::Inner; use crate::value::Word; use crate::{BitMachine, Value}; - fn assert_cmr_witness( + fn assert_cmr_witness( s: &str, cmr: &str, witness: &HashMap, Value>, - env: &J::Environment, + env: &JE, ) { - match parse::(s) { + match parse::(s) { Ok(forest) => { assert_eq!(forest.len(), 1); let main = &forest["main"]; @@ -673,7 +673,7 @@ mod tests { #[test] fn simple_program() { let empty = HashMap::new(); - assert_cmr_witness::( + assert_cmr_witness::( "main := unit", "c40a10263f7436b4160acbef1c36fba4be4d95df181a968afeab5eac247adff7", &empty, @@ -684,7 +684,7 @@ mod tests { (Arc::from("wit1"), Value::u32(0x00010203)), (Arc::from("wit2"), Value::u32(0x00010203)), ]); - assert_cmr_witness::( + assert_cmr_witness::( " wit1 := witness : 1 -> 2^32 wit2 := witness : 1 -> 2^32 @@ -716,11 +716,11 @@ mod tests { #[cfg(feature = "elements")] fn bip340_program() { use crate::jet::elements::ElementsEnv; - use crate::jet::Elements; + use crate::jet::ElementsTxEnv; let empty = HashMap::new(); let dummy = ElementsEnv::dummy(); - assert_cmr_witness::( + assert_cmr_witness::( "main := unit", "c40a10263f7436b4160acbef1c36fba4be4d95df181a968afeab5eac247adff7", &empty, @@ -737,7 +737,7 @@ mod tests { ]; let signature = HashMap::from([(Arc::from("wit1"), Value::u512(sig))]); - assert_cmr_witness::( + assert_cmr_witness::( " -- Witnesses wit1 := witness : 1 -> 2^512 diff --git a/src/jet/init/bitcoin.rs b/src/jet/init/bitcoin.rs index 428820fe..42dd6e2b 100644 --- a/src/jet/init/bitcoin.rs +++ b/src/jet/init/bitcoin.rs @@ -1,16 +1,16 @@ /* This file has been automatically generated. */ +use crate::analysis::Cost; +use crate::decode_bits; +use crate::jet::bitcoin::BitcoinEnv; use crate::jet::type_name::TypeName; -use crate::jet::Jet; +use crate::jet::{Jet, JetEnvironment}; use crate::merkle::cmr::Cmr; -use crate::decode_bits; use crate::{decode, BitIter, BitWriter}; -use crate::analysis::Cost; use hashes::sha256::Midstate; use simplicity_sys::CFrameItem; use std::io::Write; use std::{fmt, str}; -use crate::jet::bitcoin::BitcoinEnv; /// The Bitcoin jet family. #[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)] @@ -824,14 +824,6 @@ impl Bitcoin { } impl Jet for Bitcoin { - - type Environment = BitcoinEnv; - type CJetEnvironment = (); - - fn c_jet_env(_env: &Self::Environment) -> &Self::CJetEnvironment { - unimplemented!("Unspecified CJetEnvironment for Bitcoin jets") - } - fn cmr(&self) -> Cmr { unimplemented!("Bitcoin jet CMRs weights have not yet been implemented.") } @@ -1530,7 +1522,9 @@ impl Jet for Bitcoin { Bitcoin::OutputScriptHash => b"+1h", Bitcoin::OutputValue => b"+1l", Bitcoin::ParseLock => b"+ii", - Bitcoin::ParseSequence => b"+1+****22*22**22*22***22*22**22*22****22*22**22*22***22*22**22*22", + Bitcoin::ParseSequence => { + b"+1+****22*22**22*22***22*22**22*22****22*22**22*22***22*22**22*22" + } Bitcoin::PointVerify1 => b"1", Bitcoin::RightExtend16_32 => b"i", Bitcoin::RightExtend16_64 => b"l", @@ -1599,19 +1593,43 @@ impl Jet for Bitcoin { Bitcoin::Scale => b"**hhh", Bitcoin::ScriptCMR => b"h", Bitcoin::Sha256Block => b"h", - Bitcoin::Sha256Ctx8Add1 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Bitcoin::Sha256Ctx8Add128 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Bitcoin::Sha256Ctx8Add16 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Bitcoin::Sha256Ctx8Add2 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Bitcoin::Sha256Ctx8Add256 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Bitcoin::Sha256Ctx8Add32 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Bitcoin::Sha256Ctx8Add4 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Bitcoin::Sha256Ctx8Add512 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Bitcoin::Sha256Ctx8Add64 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Bitcoin::Sha256Ctx8Add8 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Bitcoin::Sha256Ctx8AddBuffer511 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", + Bitcoin::Sha256Ctx8Add1 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Bitcoin::Sha256Ctx8Add128 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Bitcoin::Sha256Ctx8Add16 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Bitcoin::Sha256Ctx8Add2 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Bitcoin::Sha256Ctx8Add256 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Bitcoin::Sha256Ctx8Add32 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Bitcoin::Sha256Ctx8Add4 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Bitcoin::Sha256Ctx8Add512 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Bitcoin::Sha256Ctx8Add64 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Bitcoin::Sha256Ctx8Add8 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Bitcoin::Sha256Ctx8AddBuffer511 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } Bitcoin::Sha256Ctx8Finalize => b"h", - Bitcoin::Sha256Ctx8Init => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", + Bitcoin::Sha256Ctx8Init => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } Bitcoin::Sha256Iv => b"h", Bitcoin::Some1 => b"2", Bitcoin::Some16 => b"2", @@ -1623,7 +1641,9 @@ impl Jet for Bitcoin { Bitcoin::Subtract64 => b"*2l", Bitcoin::Subtract8 => b"*2***22*22**22*22", Bitcoin::Swu => b"*hh", - Bitcoin::TapdataInit => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", + Bitcoin::TapdataInit => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } Bitcoin::TapleafVersion => b"***22*22**22*22", Bitcoin::Tappath => b"+1h", Bitcoin::TotalInputValue => b"l", @@ -4476,10 +4496,6 @@ impl Jet for Bitcoin { }) } - fn c_jet_ptr(&self) -> &dyn Fn(&mut CFrameItem, CFrameItem, &Self::CJetEnvironment) -> bool { - unimplemented!("Bitcoin jets have not yet been implemented.") - } - fn cost(&self) -> Cost { unimplemented!("Unspecified cost of Bitcoin jets") } @@ -5301,3 +5317,18 @@ impl str::FromStr for Bitcoin { } } } + +impl JetEnvironment for BitcoinEnv { + type Jet = Bitcoin; + type CJetEnvironment = (); + + fn c_jet_env(&self) -> &Self::CJetEnvironment { + &() + } + + fn c_jet_ptr( + _jet: &Self::Jet, + ) -> fn(&mut CFrameItem, CFrameItem, &Self::CJetEnvironment) -> bool { + unimplemented!("Bitcoin jets have not yet been implemented.") + } +} diff --git a/src/jet/init/core.rs b/src/jet/init/core.rs index c5123c20..d009862b 100644 --- a/src/jet/init/core.rs +++ b/src/jet/init/core.rs @@ -1,11 +1,11 @@ /* This file has been automatically generated. */ +use crate::analysis::Cost; +use crate::decode_bits; use crate::jet::type_name::TypeName; -use crate::jet::Jet; +use crate::jet::{Jet, JetEnvironment}; use crate::merkle::cmr::Cmr; -use crate::decode_bits; use crate::{decode, BitIter, BitWriter}; -use crate::analysis::Cost; use hashes::sha256::Midstate; use simplicity_sys::CFrameItem; use std::io::Write; @@ -759,14 +759,6 @@ impl Core { } impl Jet for Core { - - type Environment = (); - type CJetEnvironment = (); - - fn c_jet_env(env: &Self::Environment) -> &Self::CJetEnvironment { - env - } - fn cmr(&self) -> Cmr { let bytes = match self { Core::Add16 => [ @@ -3255,7 +3247,9 @@ impl Jet for Core { Core::Or64 => b"l", Core::Or8 => b"***22*22**22*22", Core::ParseLock => b"+ii", - Core::ParseSequence => b"+1+****22*22**22*22***22*22**22*22****22*22**22*22***22*22**22*22", + Core::ParseSequence => { + b"+1+****22*22**22*22***22*22**22*22****22*22**22*22***22*22**22*22" + } Core::PointVerify1 => b"1", Core::RightExtend16_32 => b"i", Core::RightExtend16_64 => b"l", @@ -3323,19 +3317,43 @@ impl Jet for Core { Core::ScalarSquare => b"h", Core::Scale => b"**hhh", Core::Sha256Block => b"h", - Core::Sha256Ctx8Add1 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Core::Sha256Ctx8Add128 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Core::Sha256Ctx8Add16 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Core::Sha256Ctx8Add2 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Core::Sha256Ctx8Add256 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Core::Sha256Ctx8Add32 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Core::Sha256Ctx8Add4 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Core::Sha256Ctx8Add512 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Core::Sha256Ctx8Add64 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Core::Sha256Ctx8Add8 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Core::Sha256Ctx8AddBuffer511 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", + Core::Sha256Ctx8Add1 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Core::Sha256Ctx8Add128 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Core::Sha256Ctx8Add16 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Core::Sha256Ctx8Add2 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Core::Sha256Ctx8Add256 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Core::Sha256Ctx8Add32 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Core::Sha256Ctx8Add4 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Core::Sha256Ctx8Add512 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Core::Sha256Ctx8Add64 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Core::Sha256Ctx8Add8 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Core::Sha256Ctx8AddBuffer511 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } Core::Sha256Ctx8Finalize => b"h", - Core::Sha256Ctx8Init => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", + Core::Sha256Ctx8Init => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } Core::Sha256Iv => b"h", Core::Some1 => b"2", Core::Some16 => b"2", @@ -3347,7 +3365,9 @@ impl Jet for Core { Core::Subtract64 => b"*2l", Core::Subtract8 => b"*2***22*22**22*22", Core::Swu => b"*hh", - Core::TapdataInit => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", + Core::TapdataInit => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } Core::Verify => b"1", Core::Xor1 => b"2", Core::Xor16 => b"****22*22**22*22***22*22**22*22", @@ -6020,379 +6040,6 @@ impl Jet for Core { }) } - fn c_jet_ptr(&self) -> &dyn Fn(&mut CFrameItem, CFrameItem, &Self::CJetEnvironment) -> bool { - match self { - Core::Add16 => &simplicity_sys::c_jets::jets_wrapper::add_16, - Core::Add32 => &simplicity_sys::c_jets::jets_wrapper::add_32, - Core::Add64 => &simplicity_sys::c_jets::jets_wrapper::add_64, - Core::Add8 => &simplicity_sys::c_jets::jets_wrapper::add_8, - Core::All16 => &simplicity_sys::c_jets::jets_wrapper::all_16, - Core::All32 => &simplicity_sys::c_jets::jets_wrapper::all_32, - Core::All64 => &simplicity_sys::c_jets::jets_wrapper::all_64, - Core::All8 => &simplicity_sys::c_jets::jets_wrapper::all_8, - Core::And1 => &simplicity_sys::c_jets::jets_wrapper::and_1, - Core::And16 => &simplicity_sys::c_jets::jets_wrapper::and_16, - Core::And32 => &simplicity_sys::c_jets::jets_wrapper::and_32, - Core::And64 => &simplicity_sys::c_jets::jets_wrapper::and_64, - Core::And8 => &simplicity_sys::c_jets::jets_wrapper::and_8, - Core::Bip0340Verify => &simplicity_sys::c_jets::jets_wrapper::bip_0340_verify, - Core::Ch1 => &simplicity_sys::c_jets::jets_wrapper::ch_1, - Core::Ch16 => &simplicity_sys::c_jets::jets_wrapper::ch_16, - Core::Ch32 => &simplicity_sys::c_jets::jets_wrapper::ch_32, - Core::Ch64 => &simplicity_sys::c_jets::jets_wrapper::ch_64, - Core::Ch8 => &simplicity_sys::c_jets::jets_wrapper::ch_8, - Core::CheckSigVerify => &simplicity_sys::c_jets::jets_wrapper::check_sig_verify, - Core::Complement1 => &simplicity_sys::c_jets::jets_wrapper::complement_1, - Core::Complement16 => &simplicity_sys::c_jets::jets_wrapper::complement_16, - Core::Complement32 => &simplicity_sys::c_jets::jets_wrapper::complement_32, - Core::Complement64 => &simplicity_sys::c_jets::jets_wrapper::complement_64, - Core::Complement8 => &simplicity_sys::c_jets::jets_wrapper::complement_8, - Core::Decompress => &simplicity_sys::c_jets::jets_wrapper::decompress, - Core::Decrement16 => &simplicity_sys::c_jets::jets_wrapper::decrement_16, - Core::Decrement32 => &simplicity_sys::c_jets::jets_wrapper::decrement_32, - Core::Decrement64 => &simplicity_sys::c_jets::jets_wrapper::decrement_64, - Core::Decrement8 => &simplicity_sys::c_jets::jets_wrapper::decrement_8, - Core::DivMod128_64 => &simplicity_sys::c_jets::jets_wrapper::div_mod_128_64, - Core::DivMod16 => &simplicity_sys::c_jets::jets_wrapper::div_mod_16, - Core::DivMod32 => &simplicity_sys::c_jets::jets_wrapper::div_mod_32, - Core::DivMod64 => &simplicity_sys::c_jets::jets_wrapper::div_mod_64, - Core::DivMod8 => &simplicity_sys::c_jets::jets_wrapper::div_mod_8, - Core::Divide16 => &simplicity_sys::c_jets::jets_wrapper::divide_16, - Core::Divide32 => &simplicity_sys::c_jets::jets_wrapper::divide_32, - Core::Divide64 => &simplicity_sys::c_jets::jets_wrapper::divide_64, - Core::Divide8 => &simplicity_sys::c_jets::jets_wrapper::divide_8, - Core::Divides16 => &simplicity_sys::c_jets::jets_wrapper::divides_16, - Core::Divides32 => &simplicity_sys::c_jets::jets_wrapper::divides_32, - Core::Divides64 => &simplicity_sys::c_jets::jets_wrapper::divides_64, - Core::Divides8 => &simplicity_sys::c_jets::jets_wrapper::divides_8, - Core::Eq1 => &simplicity_sys::c_jets::jets_wrapper::eq_1, - Core::Eq16 => &simplicity_sys::c_jets::jets_wrapper::eq_16, - Core::Eq256 => &simplicity_sys::c_jets::jets_wrapper::eq_256, - Core::Eq32 => &simplicity_sys::c_jets::jets_wrapper::eq_32, - Core::Eq64 => &simplicity_sys::c_jets::jets_wrapper::eq_64, - Core::Eq8 => &simplicity_sys::c_jets::jets_wrapper::eq_8, - Core::FeAdd => &simplicity_sys::c_jets::jets_wrapper::fe_add, - Core::FeInvert => &simplicity_sys::c_jets::jets_wrapper::fe_invert, - Core::FeIsOdd => &simplicity_sys::c_jets::jets_wrapper::fe_is_odd, - Core::FeIsZero => &simplicity_sys::c_jets::jets_wrapper::fe_is_zero, - Core::FeMultiply => &simplicity_sys::c_jets::jets_wrapper::fe_multiply, - Core::FeMultiplyBeta => &simplicity_sys::c_jets::jets_wrapper::fe_multiply_beta, - Core::FeNegate => &simplicity_sys::c_jets::jets_wrapper::fe_negate, - Core::FeNormalize => &simplicity_sys::c_jets::jets_wrapper::fe_normalize, - Core::FeSquare => &simplicity_sys::c_jets::jets_wrapper::fe_square, - Core::FeSquareRoot => &simplicity_sys::c_jets::jets_wrapper::fe_square_root, - Core::FullAdd16 => &simplicity_sys::c_jets::jets_wrapper::full_add_16, - Core::FullAdd32 => &simplicity_sys::c_jets::jets_wrapper::full_add_32, - Core::FullAdd64 => &simplicity_sys::c_jets::jets_wrapper::full_add_64, - Core::FullAdd8 => &simplicity_sys::c_jets::jets_wrapper::full_add_8, - Core::FullDecrement16 => &simplicity_sys::c_jets::jets_wrapper::full_decrement_16, - Core::FullDecrement32 => &simplicity_sys::c_jets::jets_wrapper::full_decrement_32, - Core::FullDecrement64 => &simplicity_sys::c_jets::jets_wrapper::full_decrement_64, - Core::FullDecrement8 => &simplicity_sys::c_jets::jets_wrapper::full_decrement_8, - Core::FullIncrement16 => &simplicity_sys::c_jets::jets_wrapper::full_increment_16, - Core::FullIncrement32 => &simplicity_sys::c_jets::jets_wrapper::full_increment_32, - Core::FullIncrement64 => &simplicity_sys::c_jets::jets_wrapper::full_increment_64, - Core::FullIncrement8 => &simplicity_sys::c_jets::jets_wrapper::full_increment_8, - Core::FullLeftShift16_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_1, - Core::FullLeftShift16_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_2, - Core::FullLeftShift16_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_4, - Core::FullLeftShift16_8 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_8, - Core::FullLeftShift32_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_1, - Core::FullLeftShift32_16 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_16, - Core::FullLeftShift32_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_2, - Core::FullLeftShift32_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_4, - Core::FullLeftShift32_8 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_8, - Core::FullLeftShift64_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_1, - Core::FullLeftShift64_16 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_16, - Core::FullLeftShift64_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_2, - Core::FullLeftShift64_32 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_32, - Core::FullLeftShift64_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_4, - Core::FullLeftShift64_8 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_8, - Core::FullLeftShift8_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_1, - Core::FullLeftShift8_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_2, - Core::FullLeftShift8_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_4, - Core::FullMultiply16 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_16, - Core::FullMultiply32 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_32, - Core::FullMultiply64 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_64, - Core::FullMultiply8 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_8, - Core::FullRightShift16_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_1, - Core::FullRightShift16_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_2, - Core::FullRightShift16_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_4, - Core::FullRightShift16_8 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_8, - Core::FullRightShift32_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_1, - Core::FullRightShift32_16 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_16, - Core::FullRightShift32_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_2, - Core::FullRightShift32_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_4, - Core::FullRightShift32_8 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_8, - Core::FullRightShift64_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_1, - Core::FullRightShift64_16 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_16, - Core::FullRightShift64_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_2, - Core::FullRightShift64_32 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_32, - Core::FullRightShift64_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_4, - Core::FullRightShift64_8 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_8, - Core::FullRightShift8_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_1, - Core::FullRightShift8_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_2, - Core::FullRightShift8_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_4, - Core::FullSubtract16 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_16, - Core::FullSubtract32 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_32, - Core::FullSubtract64 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_64, - Core::FullSubtract8 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_8, - Core::GeIsOnCurve => &simplicity_sys::c_jets::jets_wrapper::ge_is_on_curve, - Core::GeNegate => &simplicity_sys::c_jets::jets_wrapper::ge_negate, - Core::GejAdd => &simplicity_sys::c_jets::jets_wrapper::gej_add, - Core::GejDouble => &simplicity_sys::c_jets::jets_wrapper::gej_double, - Core::GejEquiv => &simplicity_sys::c_jets::jets_wrapper::gej_equiv, - Core::GejGeAdd => &simplicity_sys::c_jets::jets_wrapper::gej_ge_add, - Core::GejGeAddEx => &simplicity_sys::c_jets::jets_wrapper::gej_ge_add_ex, - Core::GejGeEquiv => &simplicity_sys::c_jets::jets_wrapper::gej_ge_equiv, - Core::GejInfinity => &simplicity_sys::c_jets::jets_wrapper::gej_infinity, - Core::GejIsInfinity => &simplicity_sys::c_jets::jets_wrapper::gej_is_infinity, - Core::GejIsOnCurve => &simplicity_sys::c_jets::jets_wrapper::gej_is_on_curve, - Core::GejNegate => &simplicity_sys::c_jets::jets_wrapper::gej_negate, - Core::GejNormalize => &simplicity_sys::c_jets::jets_wrapper::gej_normalize, - Core::GejRescale => &simplicity_sys::c_jets::jets_wrapper::gej_rescale, - Core::GejXEquiv => &simplicity_sys::c_jets::jets_wrapper::gej_x_equiv, - Core::GejYIsOdd => &simplicity_sys::c_jets::jets_wrapper::gej_y_is_odd, - Core::Generate => &simplicity_sys::c_jets::jets_wrapper::generate, - Core::HashToCurve => &simplicity_sys::c_jets::jets_wrapper::hash_to_curve, - Core::High1 => &simplicity_sys::c_jets::jets_wrapper::high_1, - Core::High16 => &simplicity_sys::c_jets::jets_wrapper::high_16, - Core::High32 => &simplicity_sys::c_jets::jets_wrapper::high_32, - Core::High64 => &simplicity_sys::c_jets::jets_wrapper::high_64, - Core::High8 => &simplicity_sys::c_jets::jets_wrapper::high_8, - Core::Increment16 => &simplicity_sys::c_jets::jets_wrapper::increment_16, - Core::Increment32 => &simplicity_sys::c_jets::jets_wrapper::increment_32, - Core::Increment64 => &simplicity_sys::c_jets::jets_wrapper::increment_64, - Core::Increment8 => &simplicity_sys::c_jets::jets_wrapper::increment_8, - Core::IsOne16 => &simplicity_sys::c_jets::jets_wrapper::is_one_16, - Core::IsOne32 => &simplicity_sys::c_jets::jets_wrapper::is_one_32, - Core::IsOne64 => &simplicity_sys::c_jets::jets_wrapper::is_one_64, - Core::IsOne8 => &simplicity_sys::c_jets::jets_wrapper::is_one_8, - Core::IsZero16 => &simplicity_sys::c_jets::jets_wrapper::is_zero_16, - Core::IsZero32 => &simplicity_sys::c_jets::jets_wrapper::is_zero_32, - Core::IsZero64 => &simplicity_sys::c_jets::jets_wrapper::is_zero_64, - Core::IsZero8 => &simplicity_sys::c_jets::jets_wrapper::is_zero_8, - Core::Le16 => &simplicity_sys::c_jets::jets_wrapper::le_16, - Core::Le32 => &simplicity_sys::c_jets::jets_wrapper::le_32, - Core::Le64 => &simplicity_sys::c_jets::jets_wrapper::le_64, - Core::Le8 => &simplicity_sys::c_jets::jets_wrapper::le_8, - Core::LeftExtend16_32 => &simplicity_sys::c_jets::jets_wrapper::left_extend_16_32, - Core::LeftExtend16_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_16_64, - Core::LeftExtend1_16 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_16, - Core::LeftExtend1_32 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_32, - Core::LeftExtend1_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_64, - Core::LeftExtend1_8 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_8, - Core::LeftExtend32_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_32_64, - Core::LeftExtend8_16 => &simplicity_sys::c_jets::jets_wrapper::left_extend_8_16, - Core::LeftExtend8_32 => &simplicity_sys::c_jets::jets_wrapper::left_extend_8_32, - Core::LeftExtend8_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_8_64, - Core::LeftPadHigh16_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_32, - Core::LeftPadHigh16_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_64, - Core::LeftPadHigh1_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_16, - Core::LeftPadHigh1_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_32, - Core::LeftPadHigh1_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_64, - Core::LeftPadHigh1_8 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_8, - Core::LeftPadHigh32_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_32_64, - Core::LeftPadHigh8_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_16, - Core::LeftPadHigh8_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_32, - Core::LeftPadHigh8_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_64, - Core::LeftPadLow16_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_32, - Core::LeftPadLow16_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_64, - Core::LeftPadLow1_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_16, - Core::LeftPadLow1_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_32, - Core::LeftPadLow1_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_64, - Core::LeftPadLow1_8 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_8, - Core::LeftPadLow32_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_32_64, - Core::LeftPadLow8_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_16, - Core::LeftPadLow8_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_32, - Core::LeftPadLow8_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_64, - Core::LeftRotate16 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_16, - Core::LeftRotate32 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_32, - Core::LeftRotate64 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_64, - Core::LeftRotate8 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_8, - Core::LeftShift16 => &simplicity_sys::c_jets::jets_wrapper::left_shift_16, - Core::LeftShift32 => &simplicity_sys::c_jets::jets_wrapper::left_shift_32, - Core::LeftShift64 => &simplicity_sys::c_jets::jets_wrapper::left_shift_64, - Core::LeftShift8 => &simplicity_sys::c_jets::jets_wrapper::left_shift_8, - Core::LeftShiftWith16 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_16, - Core::LeftShiftWith32 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_32, - Core::LeftShiftWith64 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_64, - Core::LeftShiftWith8 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_8, - Core::Leftmost16_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_1, - Core::Leftmost16_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_2, - Core::Leftmost16_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_4, - Core::Leftmost16_8 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_8, - Core::Leftmost32_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_1, - Core::Leftmost32_16 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_16, - Core::Leftmost32_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_2, - Core::Leftmost32_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_4, - Core::Leftmost32_8 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_8, - Core::Leftmost64_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_1, - Core::Leftmost64_16 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_16, - Core::Leftmost64_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_2, - Core::Leftmost64_32 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_32, - Core::Leftmost64_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_4, - Core::Leftmost64_8 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_8, - Core::Leftmost8_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_8_1, - Core::Leftmost8_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_8_2, - Core::Leftmost8_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_8_4, - Core::LinearCombination1 => &simplicity_sys::c_jets::jets_wrapper::linear_combination_1, - Core::LinearVerify1 => &simplicity_sys::c_jets::jets_wrapper::linear_verify_1, - Core::Low1 => &simplicity_sys::c_jets::jets_wrapper::low_1, - Core::Low16 => &simplicity_sys::c_jets::jets_wrapper::low_16, - Core::Low32 => &simplicity_sys::c_jets::jets_wrapper::low_32, - Core::Low64 => &simplicity_sys::c_jets::jets_wrapper::low_64, - Core::Low8 => &simplicity_sys::c_jets::jets_wrapper::low_8, - Core::Lt16 => &simplicity_sys::c_jets::jets_wrapper::lt_16, - Core::Lt32 => &simplicity_sys::c_jets::jets_wrapper::lt_32, - Core::Lt64 => &simplicity_sys::c_jets::jets_wrapper::lt_64, - Core::Lt8 => &simplicity_sys::c_jets::jets_wrapper::lt_8, - Core::Maj1 => &simplicity_sys::c_jets::jets_wrapper::maj_1, - Core::Maj16 => &simplicity_sys::c_jets::jets_wrapper::maj_16, - Core::Maj32 => &simplicity_sys::c_jets::jets_wrapper::maj_32, - Core::Maj64 => &simplicity_sys::c_jets::jets_wrapper::maj_64, - Core::Maj8 => &simplicity_sys::c_jets::jets_wrapper::maj_8, - Core::Max16 => &simplicity_sys::c_jets::jets_wrapper::max_16, - Core::Max32 => &simplicity_sys::c_jets::jets_wrapper::max_32, - Core::Max64 => &simplicity_sys::c_jets::jets_wrapper::max_64, - Core::Max8 => &simplicity_sys::c_jets::jets_wrapper::max_8, - Core::Median16 => &simplicity_sys::c_jets::jets_wrapper::median_16, - Core::Median32 => &simplicity_sys::c_jets::jets_wrapper::median_32, - Core::Median64 => &simplicity_sys::c_jets::jets_wrapper::median_64, - Core::Median8 => &simplicity_sys::c_jets::jets_wrapper::median_8, - Core::Min16 => &simplicity_sys::c_jets::jets_wrapper::min_16, - Core::Min32 => &simplicity_sys::c_jets::jets_wrapper::min_32, - Core::Min64 => &simplicity_sys::c_jets::jets_wrapper::min_64, - Core::Min8 => &simplicity_sys::c_jets::jets_wrapper::min_8, - Core::Modulo16 => &simplicity_sys::c_jets::jets_wrapper::modulo_16, - Core::Modulo32 => &simplicity_sys::c_jets::jets_wrapper::modulo_32, - Core::Modulo64 => &simplicity_sys::c_jets::jets_wrapper::modulo_64, - Core::Modulo8 => &simplicity_sys::c_jets::jets_wrapper::modulo_8, - Core::Multiply16 => &simplicity_sys::c_jets::jets_wrapper::multiply_16, - Core::Multiply32 => &simplicity_sys::c_jets::jets_wrapper::multiply_32, - Core::Multiply64 => &simplicity_sys::c_jets::jets_wrapper::multiply_64, - Core::Multiply8 => &simplicity_sys::c_jets::jets_wrapper::multiply_8, - Core::Negate16 => &simplicity_sys::c_jets::jets_wrapper::negate_16, - Core::Negate32 => &simplicity_sys::c_jets::jets_wrapper::negate_32, - Core::Negate64 => &simplicity_sys::c_jets::jets_wrapper::negate_64, - Core::Negate8 => &simplicity_sys::c_jets::jets_wrapper::negate_8, - Core::One16 => &simplicity_sys::c_jets::jets_wrapper::one_16, - Core::One32 => &simplicity_sys::c_jets::jets_wrapper::one_32, - Core::One64 => &simplicity_sys::c_jets::jets_wrapper::one_64, - Core::One8 => &simplicity_sys::c_jets::jets_wrapper::one_8, - Core::Or1 => &simplicity_sys::c_jets::jets_wrapper::or_1, - Core::Or16 => &simplicity_sys::c_jets::jets_wrapper::or_16, - Core::Or32 => &simplicity_sys::c_jets::jets_wrapper::or_32, - Core::Or64 => &simplicity_sys::c_jets::jets_wrapper::or_64, - Core::Or8 => &simplicity_sys::c_jets::jets_wrapper::or_8, - Core::ParseLock => &simplicity_sys::c_jets::jets_wrapper::parse_lock, - Core::ParseSequence => &simplicity_sys::c_jets::jets_wrapper::parse_sequence, - Core::PointVerify1 => &simplicity_sys::c_jets::jets_wrapper::point_verify_1, - Core::RightExtend16_32 => &simplicity_sys::c_jets::jets_wrapper::right_extend_16_32, - Core::RightExtend16_64 => &simplicity_sys::c_jets::jets_wrapper::right_extend_16_64, - Core::RightExtend32_64 => &simplicity_sys::c_jets::jets_wrapper::right_extend_32_64, - Core::RightExtend8_16 => &simplicity_sys::c_jets::jets_wrapper::right_extend_8_16, - Core::RightExtend8_32 => &simplicity_sys::c_jets::jets_wrapper::right_extend_8_32, - Core::RightExtend8_64 => &simplicity_sys::c_jets::jets_wrapper::right_extend_8_64, - Core::RightPadHigh16_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_32, - Core::RightPadHigh16_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_64, - Core::RightPadHigh1_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_16, - Core::RightPadHigh1_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_32, - Core::RightPadHigh1_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_64, - Core::RightPadHigh1_8 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_8, - Core::RightPadHigh32_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_32_64, - Core::RightPadHigh8_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_16, - Core::RightPadHigh8_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_32, - Core::RightPadHigh8_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_64, - Core::RightPadLow16_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_32, - Core::RightPadLow16_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_64, - Core::RightPadLow1_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_16, - Core::RightPadLow1_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_32, - Core::RightPadLow1_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_64, - Core::RightPadLow1_8 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_8, - Core::RightPadLow32_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_32_64, - Core::RightPadLow8_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_16, - Core::RightPadLow8_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_32, - Core::RightPadLow8_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_64, - Core::RightRotate16 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_16, - Core::RightRotate32 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_32, - Core::RightRotate64 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_64, - Core::RightRotate8 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_8, - Core::RightShift16 => &simplicity_sys::c_jets::jets_wrapper::right_shift_16, - Core::RightShift32 => &simplicity_sys::c_jets::jets_wrapper::right_shift_32, - Core::RightShift64 => &simplicity_sys::c_jets::jets_wrapper::right_shift_64, - Core::RightShift8 => &simplicity_sys::c_jets::jets_wrapper::right_shift_8, - Core::RightShiftWith16 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_16, - Core::RightShiftWith32 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_32, - Core::RightShiftWith64 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_64, - Core::RightShiftWith8 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_8, - Core::Rightmost16_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_1, - Core::Rightmost16_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_2, - Core::Rightmost16_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_4, - Core::Rightmost16_8 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_8, - Core::Rightmost32_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_1, - Core::Rightmost32_16 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_16, - Core::Rightmost32_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_2, - Core::Rightmost32_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_4, - Core::Rightmost32_8 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_8, - Core::Rightmost64_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_1, - Core::Rightmost64_16 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_16, - Core::Rightmost64_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_2, - Core::Rightmost64_32 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_32, - Core::Rightmost64_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_4, - Core::Rightmost64_8 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_8, - Core::Rightmost8_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_8_1, - Core::Rightmost8_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_8_2, - Core::Rightmost8_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_8_4, - Core::ScalarAdd => &simplicity_sys::c_jets::jets_wrapper::scalar_add, - Core::ScalarInvert => &simplicity_sys::c_jets::jets_wrapper::scalar_invert, - Core::ScalarIsZero => &simplicity_sys::c_jets::jets_wrapper::scalar_is_zero, - Core::ScalarMultiply => &simplicity_sys::c_jets::jets_wrapper::scalar_multiply, - Core::ScalarMultiplyLambda => &simplicity_sys::c_jets::jets_wrapper::scalar_multiply_lambda, - Core::ScalarNegate => &simplicity_sys::c_jets::jets_wrapper::scalar_negate, - Core::ScalarNormalize => &simplicity_sys::c_jets::jets_wrapper::scalar_normalize, - Core::ScalarSquare => &simplicity_sys::c_jets::jets_wrapper::scalar_square, - Core::Scale => &simplicity_sys::c_jets::jets_wrapper::scale, - Core::Sha256Block => &simplicity_sys::c_jets::jets_wrapper::sha_256_block, - Core::Sha256Ctx8Add1 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_1, - Core::Sha256Ctx8Add128 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_128, - Core::Sha256Ctx8Add16 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_16, - Core::Sha256Ctx8Add2 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_2, - Core::Sha256Ctx8Add256 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_256, - Core::Sha256Ctx8Add32 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_32, - Core::Sha256Ctx8Add4 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_4, - Core::Sha256Ctx8Add512 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_512, - Core::Sha256Ctx8Add64 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_64, - Core::Sha256Ctx8Add8 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_8, - Core::Sha256Ctx8AddBuffer511 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_buffer_511, - Core::Sha256Ctx8Finalize => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_finalize, - Core::Sha256Ctx8Init => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_init, - Core::Sha256Iv => &simplicity_sys::c_jets::jets_wrapper::sha_256_iv, - Core::Some1 => &simplicity_sys::c_jets::jets_wrapper::some_1, - Core::Some16 => &simplicity_sys::c_jets::jets_wrapper::some_16, - Core::Some32 => &simplicity_sys::c_jets::jets_wrapper::some_32, - Core::Some64 => &simplicity_sys::c_jets::jets_wrapper::some_64, - Core::Some8 => &simplicity_sys::c_jets::jets_wrapper::some_8, - Core::Subtract16 => &simplicity_sys::c_jets::jets_wrapper::subtract_16, - Core::Subtract32 => &simplicity_sys::c_jets::jets_wrapper::subtract_32, - Core::Subtract64 => &simplicity_sys::c_jets::jets_wrapper::subtract_64, - Core::Subtract8 => &simplicity_sys::c_jets::jets_wrapper::subtract_8, - Core::Swu => &simplicity_sys::c_jets::jets_wrapper::swu, - Core::TapdataInit => &simplicity_sys::c_jets::jets_wrapper::tapdata_init, - Core::Verify => &simplicity_sys::c_jets::jets_wrapper::verify, - Core::Xor1 => &simplicity_sys::c_jets::jets_wrapper::xor_1, - Core::Xor16 => &simplicity_sys::c_jets::jets_wrapper::xor_16, - Core::Xor32 => &simplicity_sys::c_jets::jets_wrapper::xor_32, - Core::Xor64 => &simplicity_sys::c_jets::jets_wrapper::xor_64, - Core::Xor8 => &simplicity_sys::c_jets::jets_wrapper::xor_8, - Core::XorXor1 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_1, - Core::XorXor16 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_16, - Core::XorXor32 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_32, - Core::XorXor64 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_64, - Core::XorXor8 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_8, - } - } - fn cost(&self) -> Cost { match self { Core::Add16 => Cost::from_milliweight(108), @@ -7519,3 +7166,401 @@ impl str::FromStr for Core { } } } + +pub type CoreEnv = (); + +impl JetEnvironment for CoreEnv { + type Jet = Core; + type CJetEnvironment = (); + + fn c_jet_env(&self) -> &Self::CJetEnvironment { + &() + } + + fn c_jet_ptr( + jet: &Self::Jet, + ) -> fn(&mut CFrameItem, CFrameItem, &Self::CJetEnvironment) -> bool { + match jet { + Core::Add16 => simplicity_sys::c_jets::jets_wrapper::add_16, + Core::Add32 => simplicity_sys::c_jets::jets_wrapper::add_32, + Core::Add64 => simplicity_sys::c_jets::jets_wrapper::add_64, + Core::Add8 => simplicity_sys::c_jets::jets_wrapper::add_8, + Core::All16 => simplicity_sys::c_jets::jets_wrapper::all_16, + Core::All32 => simplicity_sys::c_jets::jets_wrapper::all_32, + Core::All64 => simplicity_sys::c_jets::jets_wrapper::all_64, + Core::All8 => simplicity_sys::c_jets::jets_wrapper::all_8, + Core::And1 => simplicity_sys::c_jets::jets_wrapper::and_1, + Core::And16 => simplicity_sys::c_jets::jets_wrapper::and_16, + Core::And32 => simplicity_sys::c_jets::jets_wrapper::and_32, + Core::And64 => simplicity_sys::c_jets::jets_wrapper::and_64, + Core::And8 => simplicity_sys::c_jets::jets_wrapper::and_8, + Core::Bip0340Verify => simplicity_sys::c_jets::jets_wrapper::bip_0340_verify, + Core::Ch1 => simplicity_sys::c_jets::jets_wrapper::ch_1, + Core::Ch16 => simplicity_sys::c_jets::jets_wrapper::ch_16, + Core::Ch32 => simplicity_sys::c_jets::jets_wrapper::ch_32, + Core::Ch64 => simplicity_sys::c_jets::jets_wrapper::ch_64, + Core::Ch8 => simplicity_sys::c_jets::jets_wrapper::ch_8, + Core::CheckSigVerify => simplicity_sys::c_jets::jets_wrapper::check_sig_verify, + Core::Complement1 => simplicity_sys::c_jets::jets_wrapper::complement_1, + Core::Complement16 => simplicity_sys::c_jets::jets_wrapper::complement_16, + Core::Complement32 => simplicity_sys::c_jets::jets_wrapper::complement_32, + Core::Complement64 => simplicity_sys::c_jets::jets_wrapper::complement_64, + Core::Complement8 => simplicity_sys::c_jets::jets_wrapper::complement_8, + Core::Decompress => simplicity_sys::c_jets::jets_wrapper::decompress, + Core::Decrement16 => simplicity_sys::c_jets::jets_wrapper::decrement_16, + Core::Decrement32 => simplicity_sys::c_jets::jets_wrapper::decrement_32, + Core::Decrement64 => simplicity_sys::c_jets::jets_wrapper::decrement_64, + Core::Decrement8 => simplicity_sys::c_jets::jets_wrapper::decrement_8, + Core::DivMod128_64 => simplicity_sys::c_jets::jets_wrapper::div_mod_128_64, + Core::DivMod16 => simplicity_sys::c_jets::jets_wrapper::div_mod_16, + Core::DivMod32 => simplicity_sys::c_jets::jets_wrapper::div_mod_32, + Core::DivMod64 => simplicity_sys::c_jets::jets_wrapper::div_mod_64, + Core::DivMod8 => simplicity_sys::c_jets::jets_wrapper::div_mod_8, + Core::Divide16 => simplicity_sys::c_jets::jets_wrapper::divide_16, + Core::Divide32 => simplicity_sys::c_jets::jets_wrapper::divide_32, + Core::Divide64 => simplicity_sys::c_jets::jets_wrapper::divide_64, + Core::Divide8 => simplicity_sys::c_jets::jets_wrapper::divide_8, + Core::Divides16 => simplicity_sys::c_jets::jets_wrapper::divides_16, + Core::Divides32 => simplicity_sys::c_jets::jets_wrapper::divides_32, + Core::Divides64 => simplicity_sys::c_jets::jets_wrapper::divides_64, + Core::Divides8 => simplicity_sys::c_jets::jets_wrapper::divides_8, + Core::Eq1 => simplicity_sys::c_jets::jets_wrapper::eq_1, + Core::Eq16 => simplicity_sys::c_jets::jets_wrapper::eq_16, + Core::Eq256 => simplicity_sys::c_jets::jets_wrapper::eq_256, + Core::Eq32 => simplicity_sys::c_jets::jets_wrapper::eq_32, + Core::Eq64 => simplicity_sys::c_jets::jets_wrapper::eq_64, + Core::Eq8 => simplicity_sys::c_jets::jets_wrapper::eq_8, + Core::FeAdd => simplicity_sys::c_jets::jets_wrapper::fe_add, + Core::FeInvert => simplicity_sys::c_jets::jets_wrapper::fe_invert, + Core::FeIsOdd => simplicity_sys::c_jets::jets_wrapper::fe_is_odd, + Core::FeIsZero => simplicity_sys::c_jets::jets_wrapper::fe_is_zero, + Core::FeMultiply => simplicity_sys::c_jets::jets_wrapper::fe_multiply, + Core::FeMultiplyBeta => simplicity_sys::c_jets::jets_wrapper::fe_multiply_beta, + Core::FeNegate => simplicity_sys::c_jets::jets_wrapper::fe_negate, + Core::FeNormalize => simplicity_sys::c_jets::jets_wrapper::fe_normalize, + Core::FeSquare => simplicity_sys::c_jets::jets_wrapper::fe_square, + Core::FeSquareRoot => simplicity_sys::c_jets::jets_wrapper::fe_square_root, + Core::FullAdd16 => simplicity_sys::c_jets::jets_wrapper::full_add_16, + Core::FullAdd32 => simplicity_sys::c_jets::jets_wrapper::full_add_32, + Core::FullAdd64 => simplicity_sys::c_jets::jets_wrapper::full_add_64, + Core::FullAdd8 => simplicity_sys::c_jets::jets_wrapper::full_add_8, + Core::FullDecrement16 => simplicity_sys::c_jets::jets_wrapper::full_decrement_16, + Core::FullDecrement32 => simplicity_sys::c_jets::jets_wrapper::full_decrement_32, + Core::FullDecrement64 => simplicity_sys::c_jets::jets_wrapper::full_decrement_64, + Core::FullDecrement8 => simplicity_sys::c_jets::jets_wrapper::full_decrement_8, + Core::FullIncrement16 => simplicity_sys::c_jets::jets_wrapper::full_increment_16, + Core::FullIncrement32 => simplicity_sys::c_jets::jets_wrapper::full_increment_32, + Core::FullIncrement64 => simplicity_sys::c_jets::jets_wrapper::full_increment_64, + Core::FullIncrement8 => simplicity_sys::c_jets::jets_wrapper::full_increment_8, + Core::FullLeftShift16_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_1, + Core::FullLeftShift16_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_2, + Core::FullLeftShift16_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_4, + Core::FullLeftShift16_8 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_8, + Core::FullLeftShift32_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_1, + Core::FullLeftShift32_16 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_16, + Core::FullLeftShift32_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_2, + Core::FullLeftShift32_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_4, + Core::FullLeftShift32_8 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_8, + Core::FullLeftShift64_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_1, + Core::FullLeftShift64_16 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_16, + Core::FullLeftShift64_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_2, + Core::FullLeftShift64_32 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_32, + Core::FullLeftShift64_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_4, + Core::FullLeftShift64_8 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_8, + Core::FullLeftShift8_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_1, + Core::FullLeftShift8_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_2, + Core::FullLeftShift8_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_4, + Core::FullMultiply16 => simplicity_sys::c_jets::jets_wrapper::full_multiply_16, + Core::FullMultiply32 => simplicity_sys::c_jets::jets_wrapper::full_multiply_32, + Core::FullMultiply64 => simplicity_sys::c_jets::jets_wrapper::full_multiply_64, + Core::FullMultiply8 => simplicity_sys::c_jets::jets_wrapper::full_multiply_8, + Core::FullRightShift16_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_1, + Core::FullRightShift16_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_2, + Core::FullRightShift16_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_4, + Core::FullRightShift16_8 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_8, + Core::FullRightShift32_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_1, + Core::FullRightShift32_16 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_16 + } + Core::FullRightShift32_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_2, + Core::FullRightShift32_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_4, + Core::FullRightShift32_8 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_8, + Core::FullRightShift64_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_1, + Core::FullRightShift64_16 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_16 + } + Core::FullRightShift64_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_2, + Core::FullRightShift64_32 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_32 + } + Core::FullRightShift64_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_4, + Core::FullRightShift64_8 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_8, + Core::FullRightShift8_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_1, + Core::FullRightShift8_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_2, + Core::FullRightShift8_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_4, + Core::FullSubtract16 => simplicity_sys::c_jets::jets_wrapper::full_subtract_16, + Core::FullSubtract32 => simplicity_sys::c_jets::jets_wrapper::full_subtract_32, + Core::FullSubtract64 => simplicity_sys::c_jets::jets_wrapper::full_subtract_64, + Core::FullSubtract8 => simplicity_sys::c_jets::jets_wrapper::full_subtract_8, + Core::GeIsOnCurve => simplicity_sys::c_jets::jets_wrapper::ge_is_on_curve, + Core::GeNegate => simplicity_sys::c_jets::jets_wrapper::ge_negate, + Core::GejAdd => simplicity_sys::c_jets::jets_wrapper::gej_add, + Core::GejDouble => simplicity_sys::c_jets::jets_wrapper::gej_double, + Core::GejEquiv => simplicity_sys::c_jets::jets_wrapper::gej_equiv, + Core::GejGeAdd => simplicity_sys::c_jets::jets_wrapper::gej_ge_add, + Core::GejGeAddEx => simplicity_sys::c_jets::jets_wrapper::gej_ge_add_ex, + Core::GejGeEquiv => simplicity_sys::c_jets::jets_wrapper::gej_ge_equiv, + Core::GejInfinity => simplicity_sys::c_jets::jets_wrapper::gej_infinity, + Core::GejIsInfinity => simplicity_sys::c_jets::jets_wrapper::gej_is_infinity, + Core::GejIsOnCurve => simplicity_sys::c_jets::jets_wrapper::gej_is_on_curve, + Core::GejNegate => simplicity_sys::c_jets::jets_wrapper::gej_negate, + Core::GejNormalize => simplicity_sys::c_jets::jets_wrapper::gej_normalize, + Core::GejRescale => simplicity_sys::c_jets::jets_wrapper::gej_rescale, + Core::GejXEquiv => simplicity_sys::c_jets::jets_wrapper::gej_x_equiv, + Core::GejYIsOdd => simplicity_sys::c_jets::jets_wrapper::gej_y_is_odd, + Core::Generate => simplicity_sys::c_jets::jets_wrapper::generate, + Core::HashToCurve => simplicity_sys::c_jets::jets_wrapper::hash_to_curve, + Core::High1 => simplicity_sys::c_jets::jets_wrapper::high_1, + Core::High16 => simplicity_sys::c_jets::jets_wrapper::high_16, + Core::High32 => simplicity_sys::c_jets::jets_wrapper::high_32, + Core::High64 => simplicity_sys::c_jets::jets_wrapper::high_64, + Core::High8 => simplicity_sys::c_jets::jets_wrapper::high_8, + Core::Increment16 => simplicity_sys::c_jets::jets_wrapper::increment_16, + Core::Increment32 => simplicity_sys::c_jets::jets_wrapper::increment_32, + Core::Increment64 => simplicity_sys::c_jets::jets_wrapper::increment_64, + Core::Increment8 => simplicity_sys::c_jets::jets_wrapper::increment_8, + Core::IsOne16 => simplicity_sys::c_jets::jets_wrapper::is_one_16, + Core::IsOne32 => simplicity_sys::c_jets::jets_wrapper::is_one_32, + Core::IsOne64 => simplicity_sys::c_jets::jets_wrapper::is_one_64, + Core::IsOne8 => simplicity_sys::c_jets::jets_wrapper::is_one_8, + Core::IsZero16 => simplicity_sys::c_jets::jets_wrapper::is_zero_16, + Core::IsZero32 => simplicity_sys::c_jets::jets_wrapper::is_zero_32, + Core::IsZero64 => simplicity_sys::c_jets::jets_wrapper::is_zero_64, + Core::IsZero8 => simplicity_sys::c_jets::jets_wrapper::is_zero_8, + Core::Le16 => simplicity_sys::c_jets::jets_wrapper::le_16, + Core::Le32 => simplicity_sys::c_jets::jets_wrapper::le_32, + Core::Le64 => simplicity_sys::c_jets::jets_wrapper::le_64, + Core::Le8 => simplicity_sys::c_jets::jets_wrapper::le_8, + Core::LeftExtend16_32 => simplicity_sys::c_jets::jets_wrapper::left_extend_16_32, + Core::LeftExtend16_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_16_64, + Core::LeftExtend1_16 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_16, + Core::LeftExtend1_32 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_32, + Core::LeftExtend1_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_64, + Core::LeftExtend1_8 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_8, + Core::LeftExtend32_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_32_64, + Core::LeftExtend8_16 => simplicity_sys::c_jets::jets_wrapper::left_extend_8_16, + Core::LeftExtend8_32 => simplicity_sys::c_jets::jets_wrapper::left_extend_8_32, + Core::LeftExtend8_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_8_64, + Core::LeftPadHigh16_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_32, + Core::LeftPadHigh16_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_64, + Core::LeftPadHigh1_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_16, + Core::LeftPadHigh1_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_32, + Core::LeftPadHigh1_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_64, + Core::LeftPadHigh1_8 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_8, + Core::LeftPadHigh32_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_32_64, + Core::LeftPadHigh8_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_16, + Core::LeftPadHigh8_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_32, + Core::LeftPadHigh8_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_64, + Core::LeftPadLow16_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_32, + Core::LeftPadLow16_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_64, + Core::LeftPadLow1_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_16, + Core::LeftPadLow1_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_32, + Core::LeftPadLow1_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_64, + Core::LeftPadLow1_8 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_8, + Core::LeftPadLow32_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_32_64, + Core::LeftPadLow8_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_16, + Core::LeftPadLow8_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_32, + Core::LeftPadLow8_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_64, + Core::LeftRotate16 => simplicity_sys::c_jets::jets_wrapper::left_rotate_16, + Core::LeftRotate32 => simplicity_sys::c_jets::jets_wrapper::left_rotate_32, + Core::LeftRotate64 => simplicity_sys::c_jets::jets_wrapper::left_rotate_64, + Core::LeftRotate8 => simplicity_sys::c_jets::jets_wrapper::left_rotate_8, + Core::LeftShift16 => simplicity_sys::c_jets::jets_wrapper::left_shift_16, + Core::LeftShift32 => simplicity_sys::c_jets::jets_wrapper::left_shift_32, + Core::LeftShift64 => simplicity_sys::c_jets::jets_wrapper::left_shift_64, + Core::LeftShift8 => simplicity_sys::c_jets::jets_wrapper::left_shift_8, + Core::LeftShiftWith16 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_16, + Core::LeftShiftWith32 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_32, + Core::LeftShiftWith64 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_64, + Core::LeftShiftWith8 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_8, + Core::Leftmost16_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_1, + Core::Leftmost16_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_2, + Core::Leftmost16_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_4, + Core::Leftmost16_8 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_8, + Core::Leftmost32_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_1, + Core::Leftmost32_16 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_16, + Core::Leftmost32_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_2, + Core::Leftmost32_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_4, + Core::Leftmost32_8 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_8, + Core::Leftmost64_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_1, + Core::Leftmost64_16 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_16, + Core::Leftmost64_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_2, + Core::Leftmost64_32 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_32, + Core::Leftmost64_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_4, + Core::Leftmost64_8 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_8, + Core::Leftmost8_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_8_1, + Core::Leftmost8_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_8_2, + Core::Leftmost8_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_8_4, + Core::LinearCombination1 => simplicity_sys::c_jets::jets_wrapper::linear_combination_1, + Core::LinearVerify1 => simplicity_sys::c_jets::jets_wrapper::linear_verify_1, + Core::Low1 => simplicity_sys::c_jets::jets_wrapper::low_1, + Core::Low16 => simplicity_sys::c_jets::jets_wrapper::low_16, + Core::Low32 => simplicity_sys::c_jets::jets_wrapper::low_32, + Core::Low64 => simplicity_sys::c_jets::jets_wrapper::low_64, + Core::Low8 => simplicity_sys::c_jets::jets_wrapper::low_8, + Core::Lt16 => simplicity_sys::c_jets::jets_wrapper::lt_16, + Core::Lt32 => simplicity_sys::c_jets::jets_wrapper::lt_32, + Core::Lt64 => simplicity_sys::c_jets::jets_wrapper::lt_64, + Core::Lt8 => simplicity_sys::c_jets::jets_wrapper::lt_8, + Core::Maj1 => simplicity_sys::c_jets::jets_wrapper::maj_1, + Core::Maj16 => simplicity_sys::c_jets::jets_wrapper::maj_16, + Core::Maj32 => simplicity_sys::c_jets::jets_wrapper::maj_32, + Core::Maj64 => simplicity_sys::c_jets::jets_wrapper::maj_64, + Core::Maj8 => simplicity_sys::c_jets::jets_wrapper::maj_8, + Core::Max16 => simplicity_sys::c_jets::jets_wrapper::max_16, + Core::Max32 => simplicity_sys::c_jets::jets_wrapper::max_32, + Core::Max64 => simplicity_sys::c_jets::jets_wrapper::max_64, + Core::Max8 => simplicity_sys::c_jets::jets_wrapper::max_8, + Core::Median16 => simplicity_sys::c_jets::jets_wrapper::median_16, + Core::Median32 => simplicity_sys::c_jets::jets_wrapper::median_32, + Core::Median64 => simplicity_sys::c_jets::jets_wrapper::median_64, + Core::Median8 => simplicity_sys::c_jets::jets_wrapper::median_8, + Core::Min16 => simplicity_sys::c_jets::jets_wrapper::min_16, + Core::Min32 => simplicity_sys::c_jets::jets_wrapper::min_32, + Core::Min64 => simplicity_sys::c_jets::jets_wrapper::min_64, + Core::Min8 => simplicity_sys::c_jets::jets_wrapper::min_8, + Core::Modulo16 => simplicity_sys::c_jets::jets_wrapper::modulo_16, + Core::Modulo32 => simplicity_sys::c_jets::jets_wrapper::modulo_32, + Core::Modulo64 => simplicity_sys::c_jets::jets_wrapper::modulo_64, + Core::Modulo8 => simplicity_sys::c_jets::jets_wrapper::modulo_8, + Core::Multiply16 => simplicity_sys::c_jets::jets_wrapper::multiply_16, + Core::Multiply32 => simplicity_sys::c_jets::jets_wrapper::multiply_32, + Core::Multiply64 => simplicity_sys::c_jets::jets_wrapper::multiply_64, + Core::Multiply8 => simplicity_sys::c_jets::jets_wrapper::multiply_8, + Core::Negate16 => simplicity_sys::c_jets::jets_wrapper::negate_16, + Core::Negate32 => simplicity_sys::c_jets::jets_wrapper::negate_32, + Core::Negate64 => simplicity_sys::c_jets::jets_wrapper::negate_64, + Core::Negate8 => simplicity_sys::c_jets::jets_wrapper::negate_8, + Core::One16 => simplicity_sys::c_jets::jets_wrapper::one_16, + Core::One32 => simplicity_sys::c_jets::jets_wrapper::one_32, + Core::One64 => simplicity_sys::c_jets::jets_wrapper::one_64, + Core::One8 => simplicity_sys::c_jets::jets_wrapper::one_8, + Core::Or1 => simplicity_sys::c_jets::jets_wrapper::or_1, + Core::Or16 => simplicity_sys::c_jets::jets_wrapper::or_16, + Core::Or32 => simplicity_sys::c_jets::jets_wrapper::or_32, + Core::Or64 => simplicity_sys::c_jets::jets_wrapper::or_64, + Core::Or8 => simplicity_sys::c_jets::jets_wrapper::or_8, + Core::ParseLock => simplicity_sys::c_jets::jets_wrapper::parse_lock, + Core::ParseSequence => simplicity_sys::c_jets::jets_wrapper::parse_sequence, + Core::PointVerify1 => simplicity_sys::c_jets::jets_wrapper::point_verify_1, + Core::RightExtend16_32 => simplicity_sys::c_jets::jets_wrapper::right_extend_16_32, + Core::RightExtend16_64 => simplicity_sys::c_jets::jets_wrapper::right_extend_16_64, + Core::RightExtend32_64 => simplicity_sys::c_jets::jets_wrapper::right_extend_32_64, + Core::RightExtend8_16 => simplicity_sys::c_jets::jets_wrapper::right_extend_8_16, + Core::RightExtend8_32 => simplicity_sys::c_jets::jets_wrapper::right_extend_8_32, + Core::RightExtend8_64 => simplicity_sys::c_jets::jets_wrapper::right_extend_8_64, + Core::RightPadHigh16_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_32, + Core::RightPadHigh16_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_64, + Core::RightPadHigh1_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_16, + Core::RightPadHigh1_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_32, + Core::RightPadHigh1_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_64, + Core::RightPadHigh1_8 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_8, + Core::RightPadHigh32_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_32_64, + Core::RightPadHigh8_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_16, + Core::RightPadHigh8_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_32, + Core::RightPadHigh8_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_64, + Core::RightPadLow16_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_32, + Core::RightPadLow16_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_64, + Core::RightPadLow1_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_16, + Core::RightPadLow1_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_32, + Core::RightPadLow1_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_64, + Core::RightPadLow1_8 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_8, + Core::RightPadLow32_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_32_64, + Core::RightPadLow8_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_16, + Core::RightPadLow8_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_32, + Core::RightPadLow8_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_64, + Core::RightRotate16 => simplicity_sys::c_jets::jets_wrapper::right_rotate_16, + Core::RightRotate32 => simplicity_sys::c_jets::jets_wrapper::right_rotate_32, + Core::RightRotate64 => simplicity_sys::c_jets::jets_wrapper::right_rotate_64, + Core::RightRotate8 => simplicity_sys::c_jets::jets_wrapper::right_rotate_8, + Core::RightShift16 => simplicity_sys::c_jets::jets_wrapper::right_shift_16, + Core::RightShift32 => simplicity_sys::c_jets::jets_wrapper::right_shift_32, + Core::RightShift64 => simplicity_sys::c_jets::jets_wrapper::right_shift_64, + Core::RightShift8 => simplicity_sys::c_jets::jets_wrapper::right_shift_8, + Core::RightShiftWith16 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_16, + Core::RightShiftWith32 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_32, + Core::RightShiftWith64 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_64, + Core::RightShiftWith8 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_8, + Core::Rightmost16_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_1, + Core::Rightmost16_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_2, + Core::Rightmost16_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_4, + Core::Rightmost16_8 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_8, + Core::Rightmost32_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_1, + Core::Rightmost32_16 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_16, + Core::Rightmost32_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_2, + Core::Rightmost32_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_4, + Core::Rightmost32_8 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_8, + Core::Rightmost64_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_1, + Core::Rightmost64_16 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_16, + Core::Rightmost64_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_2, + Core::Rightmost64_32 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_32, + Core::Rightmost64_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_4, + Core::Rightmost64_8 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_8, + Core::Rightmost8_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_8_1, + Core::Rightmost8_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_8_2, + Core::Rightmost8_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_8_4, + Core::ScalarAdd => simplicity_sys::c_jets::jets_wrapper::scalar_add, + Core::ScalarInvert => simplicity_sys::c_jets::jets_wrapper::scalar_invert, + Core::ScalarIsZero => simplicity_sys::c_jets::jets_wrapper::scalar_is_zero, + Core::ScalarMultiply => simplicity_sys::c_jets::jets_wrapper::scalar_multiply, + Core::ScalarMultiplyLambda => { + simplicity_sys::c_jets::jets_wrapper::scalar_multiply_lambda + } + Core::ScalarNegate => simplicity_sys::c_jets::jets_wrapper::scalar_negate, + Core::ScalarNormalize => simplicity_sys::c_jets::jets_wrapper::scalar_normalize, + Core::ScalarSquare => simplicity_sys::c_jets::jets_wrapper::scalar_square, + Core::Scale => simplicity_sys::c_jets::jets_wrapper::scale, + Core::Sha256Block => simplicity_sys::c_jets::jets_wrapper::sha_256_block, + Core::Sha256Ctx8Add1 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_1, + Core::Sha256Ctx8Add128 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_128, + Core::Sha256Ctx8Add16 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_16, + Core::Sha256Ctx8Add2 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_2, + Core::Sha256Ctx8Add256 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_256, + Core::Sha256Ctx8Add32 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_32, + Core::Sha256Ctx8Add4 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_4, + Core::Sha256Ctx8Add512 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_512, + Core::Sha256Ctx8Add64 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_64, + Core::Sha256Ctx8Add8 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_8, + Core::Sha256Ctx8AddBuffer511 => { + simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_buffer_511 + } + Core::Sha256Ctx8Finalize => { + simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_finalize + } + Core::Sha256Ctx8Init => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_init, + Core::Sha256Iv => simplicity_sys::c_jets::jets_wrapper::sha_256_iv, + Core::Some1 => simplicity_sys::c_jets::jets_wrapper::some_1, + Core::Some16 => simplicity_sys::c_jets::jets_wrapper::some_16, + Core::Some32 => simplicity_sys::c_jets::jets_wrapper::some_32, + Core::Some64 => simplicity_sys::c_jets::jets_wrapper::some_64, + Core::Some8 => simplicity_sys::c_jets::jets_wrapper::some_8, + Core::Subtract16 => simplicity_sys::c_jets::jets_wrapper::subtract_16, + Core::Subtract32 => simplicity_sys::c_jets::jets_wrapper::subtract_32, + Core::Subtract64 => simplicity_sys::c_jets::jets_wrapper::subtract_64, + Core::Subtract8 => simplicity_sys::c_jets::jets_wrapper::subtract_8, + Core::Swu => simplicity_sys::c_jets::jets_wrapper::swu, + Core::TapdataInit => simplicity_sys::c_jets::jets_wrapper::tapdata_init, + Core::Verify => simplicity_sys::c_jets::jets_wrapper::verify, + Core::Xor1 => simplicity_sys::c_jets::jets_wrapper::xor_1, + Core::Xor16 => simplicity_sys::c_jets::jets_wrapper::xor_16, + Core::Xor32 => simplicity_sys::c_jets::jets_wrapper::xor_32, + Core::Xor64 => simplicity_sys::c_jets::jets_wrapper::xor_64, + Core::Xor8 => simplicity_sys::c_jets::jets_wrapper::xor_8, + Core::XorXor1 => simplicity_sys::c_jets::jets_wrapper::xor_xor_1, + Core::XorXor16 => simplicity_sys::c_jets::jets_wrapper::xor_xor_16, + Core::XorXor32 => simplicity_sys::c_jets::jets_wrapper::xor_xor_32, + Core::XorXor64 => simplicity_sys::c_jets::jets_wrapper::xor_xor_64, + Core::XorXor8 => simplicity_sys::c_jets::jets_wrapper::xor_xor_8, + } + } +} diff --git a/src/jet/init/elements.rs b/src/jet/init/elements.rs index 323ecb62..fbf51230 100644 --- a/src/jet/init/elements.rs +++ b/src/jet/init/elements.rs @@ -1,17 +1,17 @@ /* This file has been automatically generated. */ +use crate::analysis::Cost; +use crate::decode_bits; +use crate::jet::elements::ElementsEnv; use crate::jet::type_name::TypeName; -use crate::jet::Jet; +use crate::jet::{Jet, JetEnvironment}; use crate::merkle::cmr::Cmr; -use crate::decode_bits; use crate::{decode, BitIter, BitWriter}; -use crate::analysis::Cost; use hashes::sha256::Midstate; +use simplicity_sys::CElementsTxEnv; use simplicity_sys::CFrameItem; use std::io::Write; use std::{fmt, str}; -use crate::jet::elements::ElementsEnv; -use simplicity_sys::CElementsTxEnv; /// The Elements jet family. #[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)] @@ -967,14 +967,6 @@ impl Elements { } impl Jet for Elements { - - type Environment = ElementsEnv>; - type CJetEnvironment = CElementsTxEnv; - - fn c_jet_env(env: &Self::Environment) -> &Self::CJetEnvironment { - env.c_tx_env() - } - fn cmr(&self) -> Cmr { let bytes = match self { Elements::Add16 => [ @@ -3830,8 +3822,12 @@ impl Jet for Elements { Elements::And32 => b"i", Elements::And64 => b"l", Elements::And8 => b"***22*22**22*22", - Elements::AnnexHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Elements::AssetAmountHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", + Elements::AnnexHash => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Elements::AssetAmountHash => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } Elements::Bip0340Verify => b"1", Elements::BuildTapbranch => b"h", Elements::BuildTapleafSimplicity => b"h", @@ -4137,7 +4133,9 @@ impl Jet for Elements { Elements::Negate64 => b"*2l", Elements::Negate8 => b"*2***22*22**22*22", Elements::NewIssuanceContract => b"+1+1h", - Elements::NonceHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", + Elements::NonceHash => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } Elements::NumInputs => b"i", Elements::NumOutputs => b"i", Elements::One16 => b"****22*22**22*22***22*22**22*22", @@ -4149,7 +4147,9 @@ impl Jet for Elements { Elements::Or32 => b"i", Elements::Or64 => b"l", Elements::Or8 => b"***22*22**22*22", - Elements::OutpointHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", + Elements::OutpointHash => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } Elements::OutputAmount => b"+1*+*2hh+*2hl", Elements::OutputAmountsHash => b"h", Elements::OutputAsset => b"+1+*2hh", @@ -4166,7 +4166,9 @@ impl Jet for Elements { Elements::OutputSurjectionProofsHash => b"h", Elements::OutputsHash => b"h", Elements::ParseLock => b"+ii", - Elements::ParseSequence => b"+1+****22*22**22*22***22*22**22*22****22*22**22*22***22*22**22*22", + Elements::ParseSequence => { + b"+1+****22*22**22*22***22*22**22*22****22*22**22*22***22*22**22*22" + } Elements::PointVerify1 => b"1", Elements::ReissuanceBlinding => b"+1+1h", Elements::ReissuanceEntropy => b"+1+1h", @@ -4237,19 +4239,43 @@ impl Jet for Elements { Elements::Scale => b"**hhh", Elements::ScriptCMR => b"h", Elements::Sha256Block => b"h", - Elements::Sha256Ctx8Add1 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Elements::Sha256Ctx8Add128 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Elements::Sha256Ctx8Add16 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Elements::Sha256Ctx8Add2 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Elements::Sha256Ctx8Add256 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Elements::Sha256Ctx8Add32 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Elements::Sha256Ctx8Add4 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Elements::Sha256Ctx8Add512 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Elements::Sha256Ctx8Add64 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Elements::Sha256Ctx8Add8 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", - Elements::Sha256Ctx8AddBuffer511 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", + Elements::Sha256Ctx8Add1 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Elements::Sha256Ctx8Add128 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Elements::Sha256Ctx8Add16 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Elements::Sha256Ctx8Add2 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Elements::Sha256Ctx8Add256 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Elements::Sha256Ctx8Add32 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Elements::Sha256Ctx8Add4 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Elements::Sha256Ctx8Add512 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Elements::Sha256Ctx8Add64 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Elements::Sha256Ctx8Add8 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } + Elements::Sha256Ctx8AddBuffer511 => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } Elements::Sha256Ctx8Finalize => b"h", - Elements::Sha256Ctx8Init => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", + Elements::Sha256Ctx8Init => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } Elements::Sha256Iv => b"h", Elements::SigAllHash => b"h", Elements::Some1 => b"2", @@ -4263,7 +4289,9 @@ impl Jet for Elements { Elements::Subtract8 => b"*2***22*22**22*22", Elements::Swu => b"*hh", Elements::TapEnvHash => b"h", - Elements::TapdataInit => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", + Elements::TapdataInit => { + b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh" + } Elements::TapleafHash => b"h", Elements::TapleafVersion => b"***22*22**22*22", Elements::Tappath => b"+1h", @@ -7427,482 +7455,6 @@ impl Jet for Elements { }) } - fn c_jet_ptr(&self) -> &dyn Fn(&mut CFrameItem, CFrameItem, &Self::CJetEnvironment) -> bool { - match self { - Elements::Add16 => &simplicity_sys::c_jets::jets_wrapper::add_16, - Elements::Add32 => &simplicity_sys::c_jets::jets_wrapper::add_32, - Elements::Add64 => &simplicity_sys::c_jets::jets_wrapper::add_64, - Elements::Add8 => &simplicity_sys::c_jets::jets_wrapper::add_8, - Elements::All16 => &simplicity_sys::c_jets::jets_wrapper::all_16, - Elements::All32 => &simplicity_sys::c_jets::jets_wrapper::all_32, - Elements::All64 => &simplicity_sys::c_jets::jets_wrapper::all_64, - Elements::All8 => &simplicity_sys::c_jets::jets_wrapper::all_8, - Elements::And1 => &simplicity_sys::c_jets::jets_wrapper::and_1, - Elements::And16 => &simplicity_sys::c_jets::jets_wrapper::and_16, - Elements::And32 => &simplicity_sys::c_jets::jets_wrapper::and_32, - Elements::And64 => &simplicity_sys::c_jets::jets_wrapper::and_64, - Elements::And8 => &simplicity_sys::c_jets::jets_wrapper::and_8, - Elements::AnnexHash => &simplicity_sys::c_jets::jets_wrapper::annex_hash, - Elements::AssetAmountHash => &simplicity_sys::c_jets::jets_wrapper::asset_amount_hash, - Elements::Bip0340Verify => &simplicity_sys::c_jets::jets_wrapper::bip_0340_verify, - Elements::BuildTapbranch => &simplicity_sys::c_jets::jets_wrapper::build_tapbranch, - Elements::BuildTapleafSimplicity => &simplicity_sys::c_jets::jets_wrapper::build_tapleaf_simplicity, - Elements::BuildTaptweak => &simplicity_sys::c_jets::jets_wrapper::build_taptweak, - Elements::CalculateAsset => &simplicity_sys::c_jets::jets_wrapper::calculate_asset, - Elements::CalculateConfidentialToken => &simplicity_sys::c_jets::jets_wrapper::calculate_confidential_token, - Elements::CalculateExplicitToken => &simplicity_sys::c_jets::jets_wrapper::calculate_explicit_token, - Elements::CalculateIssuanceEntropy => &simplicity_sys::c_jets::jets_wrapper::calculate_issuance_entropy, - Elements::Ch1 => &simplicity_sys::c_jets::jets_wrapper::ch_1, - Elements::Ch16 => &simplicity_sys::c_jets::jets_wrapper::ch_16, - Elements::Ch32 => &simplicity_sys::c_jets::jets_wrapper::ch_32, - Elements::Ch64 => &simplicity_sys::c_jets::jets_wrapper::ch_64, - Elements::Ch8 => &simplicity_sys::c_jets::jets_wrapper::ch_8, - Elements::CheckLockDistance => &simplicity_sys::c_jets::jets_wrapper::check_lock_distance, - Elements::CheckLockDuration => &simplicity_sys::c_jets::jets_wrapper::check_lock_duration, - Elements::CheckLockHeight => &simplicity_sys::c_jets::jets_wrapper::check_lock_height, - Elements::CheckLockTime => &simplicity_sys::c_jets::jets_wrapper::check_lock_time, - Elements::CheckSigVerify => &simplicity_sys::c_jets::jets_wrapper::check_sig_verify, - Elements::Complement1 => &simplicity_sys::c_jets::jets_wrapper::complement_1, - Elements::Complement16 => &simplicity_sys::c_jets::jets_wrapper::complement_16, - Elements::Complement32 => &simplicity_sys::c_jets::jets_wrapper::complement_32, - Elements::Complement64 => &simplicity_sys::c_jets::jets_wrapper::complement_64, - Elements::Complement8 => &simplicity_sys::c_jets::jets_wrapper::complement_8, - Elements::CurrentAmount => &simplicity_sys::c_jets::jets_wrapper::current_amount, - Elements::CurrentAnnexHash => &simplicity_sys::c_jets::jets_wrapper::current_annex_hash, - Elements::CurrentAsset => &simplicity_sys::c_jets::jets_wrapper::current_asset, - Elements::CurrentIndex => &simplicity_sys::c_jets::jets_wrapper::current_index, - Elements::CurrentIssuanceAssetAmount => &simplicity_sys::c_jets::jets_wrapper::current_issuance_asset_amount, - Elements::CurrentIssuanceAssetProof => &simplicity_sys::c_jets::jets_wrapper::current_issuance_asset_proof, - Elements::CurrentIssuanceTokenAmount => &simplicity_sys::c_jets::jets_wrapper::current_issuance_token_amount, - Elements::CurrentIssuanceTokenProof => &simplicity_sys::c_jets::jets_wrapper::current_issuance_token_proof, - Elements::CurrentNewIssuanceContract => &simplicity_sys::c_jets::jets_wrapper::current_new_issuance_contract, - Elements::CurrentPegin => &simplicity_sys::c_jets::jets_wrapper::current_pegin, - Elements::CurrentPrevOutpoint => &simplicity_sys::c_jets::jets_wrapper::current_prev_outpoint, - Elements::CurrentReissuanceBlinding => &simplicity_sys::c_jets::jets_wrapper::current_reissuance_blinding, - Elements::CurrentReissuanceEntropy => &simplicity_sys::c_jets::jets_wrapper::current_reissuance_entropy, - Elements::CurrentScriptHash => &simplicity_sys::c_jets::jets_wrapper::current_script_hash, - Elements::CurrentScriptSigHash => &simplicity_sys::c_jets::jets_wrapper::current_script_sig_hash, - Elements::CurrentSequence => &simplicity_sys::c_jets::jets_wrapper::current_sequence, - Elements::Decompress => &simplicity_sys::c_jets::jets_wrapper::decompress, - Elements::Decrement16 => &simplicity_sys::c_jets::jets_wrapper::decrement_16, - Elements::Decrement32 => &simplicity_sys::c_jets::jets_wrapper::decrement_32, - Elements::Decrement64 => &simplicity_sys::c_jets::jets_wrapper::decrement_64, - Elements::Decrement8 => &simplicity_sys::c_jets::jets_wrapper::decrement_8, - Elements::DivMod128_64 => &simplicity_sys::c_jets::jets_wrapper::div_mod_128_64, - Elements::DivMod16 => &simplicity_sys::c_jets::jets_wrapper::div_mod_16, - Elements::DivMod32 => &simplicity_sys::c_jets::jets_wrapper::div_mod_32, - Elements::DivMod64 => &simplicity_sys::c_jets::jets_wrapper::div_mod_64, - Elements::DivMod8 => &simplicity_sys::c_jets::jets_wrapper::div_mod_8, - Elements::Divide16 => &simplicity_sys::c_jets::jets_wrapper::divide_16, - Elements::Divide32 => &simplicity_sys::c_jets::jets_wrapper::divide_32, - Elements::Divide64 => &simplicity_sys::c_jets::jets_wrapper::divide_64, - Elements::Divide8 => &simplicity_sys::c_jets::jets_wrapper::divide_8, - Elements::Divides16 => &simplicity_sys::c_jets::jets_wrapper::divides_16, - Elements::Divides32 => &simplicity_sys::c_jets::jets_wrapper::divides_32, - Elements::Divides64 => &simplicity_sys::c_jets::jets_wrapper::divides_64, - Elements::Divides8 => &simplicity_sys::c_jets::jets_wrapper::divides_8, - Elements::Eq1 => &simplicity_sys::c_jets::jets_wrapper::eq_1, - Elements::Eq16 => &simplicity_sys::c_jets::jets_wrapper::eq_16, - Elements::Eq256 => &simplicity_sys::c_jets::jets_wrapper::eq_256, - Elements::Eq32 => &simplicity_sys::c_jets::jets_wrapper::eq_32, - Elements::Eq64 => &simplicity_sys::c_jets::jets_wrapper::eq_64, - Elements::Eq8 => &simplicity_sys::c_jets::jets_wrapper::eq_8, - Elements::FeAdd => &simplicity_sys::c_jets::jets_wrapper::fe_add, - Elements::FeInvert => &simplicity_sys::c_jets::jets_wrapper::fe_invert, - Elements::FeIsOdd => &simplicity_sys::c_jets::jets_wrapper::fe_is_odd, - Elements::FeIsZero => &simplicity_sys::c_jets::jets_wrapper::fe_is_zero, - Elements::FeMultiply => &simplicity_sys::c_jets::jets_wrapper::fe_multiply, - Elements::FeMultiplyBeta => &simplicity_sys::c_jets::jets_wrapper::fe_multiply_beta, - Elements::FeNegate => &simplicity_sys::c_jets::jets_wrapper::fe_negate, - Elements::FeNormalize => &simplicity_sys::c_jets::jets_wrapper::fe_normalize, - Elements::FeSquare => &simplicity_sys::c_jets::jets_wrapper::fe_square, - Elements::FeSquareRoot => &simplicity_sys::c_jets::jets_wrapper::fe_square_root, - Elements::FullAdd16 => &simplicity_sys::c_jets::jets_wrapper::full_add_16, - Elements::FullAdd32 => &simplicity_sys::c_jets::jets_wrapper::full_add_32, - Elements::FullAdd64 => &simplicity_sys::c_jets::jets_wrapper::full_add_64, - Elements::FullAdd8 => &simplicity_sys::c_jets::jets_wrapper::full_add_8, - Elements::FullDecrement16 => &simplicity_sys::c_jets::jets_wrapper::full_decrement_16, - Elements::FullDecrement32 => &simplicity_sys::c_jets::jets_wrapper::full_decrement_32, - Elements::FullDecrement64 => &simplicity_sys::c_jets::jets_wrapper::full_decrement_64, - Elements::FullDecrement8 => &simplicity_sys::c_jets::jets_wrapper::full_decrement_8, - Elements::FullIncrement16 => &simplicity_sys::c_jets::jets_wrapper::full_increment_16, - Elements::FullIncrement32 => &simplicity_sys::c_jets::jets_wrapper::full_increment_32, - Elements::FullIncrement64 => &simplicity_sys::c_jets::jets_wrapper::full_increment_64, - Elements::FullIncrement8 => &simplicity_sys::c_jets::jets_wrapper::full_increment_8, - Elements::FullLeftShift16_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_1, - Elements::FullLeftShift16_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_2, - Elements::FullLeftShift16_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_4, - Elements::FullLeftShift16_8 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_8, - Elements::FullLeftShift32_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_1, - Elements::FullLeftShift32_16 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_16, - Elements::FullLeftShift32_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_2, - Elements::FullLeftShift32_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_4, - Elements::FullLeftShift32_8 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_8, - Elements::FullLeftShift64_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_1, - Elements::FullLeftShift64_16 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_16, - Elements::FullLeftShift64_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_2, - Elements::FullLeftShift64_32 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_32, - Elements::FullLeftShift64_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_4, - Elements::FullLeftShift64_8 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_8, - Elements::FullLeftShift8_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_1, - Elements::FullLeftShift8_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_2, - Elements::FullLeftShift8_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_4, - Elements::FullMultiply16 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_16, - Elements::FullMultiply32 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_32, - Elements::FullMultiply64 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_64, - Elements::FullMultiply8 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_8, - Elements::FullRightShift16_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_1, - Elements::FullRightShift16_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_2, - Elements::FullRightShift16_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_4, - Elements::FullRightShift16_8 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_8, - Elements::FullRightShift32_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_1, - Elements::FullRightShift32_16 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_16, - Elements::FullRightShift32_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_2, - Elements::FullRightShift32_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_4, - Elements::FullRightShift32_8 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_8, - Elements::FullRightShift64_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_1, - Elements::FullRightShift64_16 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_16, - Elements::FullRightShift64_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_2, - Elements::FullRightShift64_32 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_32, - Elements::FullRightShift64_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_4, - Elements::FullRightShift64_8 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_8, - Elements::FullRightShift8_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_1, - Elements::FullRightShift8_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_2, - Elements::FullRightShift8_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_4, - Elements::FullSubtract16 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_16, - Elements::FullSubtract32 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_32, - Elements::FullSubtract64 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_64, - Elements::FullSubtract8 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_8, - Elements::GeIsOnCurve => &simplicity_sys::c_jets::jets_wrapper::ge_is_on_curve, - Elements::GeNegate => &simplicity_sys::c_jets::jets_wrapper::ge_negate, - Elements::GejAdd => &simplicity_sys::c_jets::jets_wrapper::gej_add, - Elements::GejDouble => &simplicity_sys::c_jets::jets_wrapper::gej_double, - Elements::GejEquiv => &simplicity_sys::c_jets::jets_wrapper::gej_equiv, - Elements::GejGeAdd => &simplicity_sys::c_jets::jets_wrapper::gej_ge_add, - Elements::GejGeAddEx => &simplicity_sys::c_jets::jets_wrapper::gej_ge_add_ex, - Elements::GejGeEquiv => &simplicity_sys::c_jets::jets_wrapper::gej_ge_equiv, - Elements::GejInfinity => &simplicity_sys::c_jets::jets_wrapper::gej_infinity, - Elements::GejIsInfinity => &simplicity_sys::c_jets::jets_wrapper::gej_is_infinity, - Elements::GejIsOnCurve => &simplicity_sys::c_jets::jets_wrapper::gej_is_on_curve, - Elements::GejNegate => &simplicity_sys::c_jets::jets_wrapper::gej_negate, - Elements::GejNormalize => &simplicity_sys::c_jets::jets_wrapper::gej_normalize, - Elements::GejRescale => &simplicity_sys::c_jets::jets_wrapper::gej_rescale, - Elements::GejXEquiv => &simplicity_sys::c_jets::jets_wrapper::gej_x_equiv, - Elements::GejYIsOdd => &simplicity_sys::c_jets::jets_wrapper::gej_y_is_odd, - Elements::Generate => &simplicity_sys::c_jets::jets_wrapper::generate, - Elements::GenesisBlockHash => &simplicity_sys::c_jets::jets_wrapper::genesis_block_hash, - Elements::HashToCurve => &simplicity_sys::c_jets::jets_wrapper::hash_to_curve, - Elements::High1 => &simplicity_sys::c_jets::jets_wrapper::high_1, - Elements::High16 => &simplicity_sys::c_jets::jets_wrapper::high_16, - Elements::High32 => &simplicity_sys::c_jets::jets_wrapper::high_32, - Elements::High64 => &simplicity_sys::c_jets::jets_wrapper::high_64, - Elements::High8 => &simplicity_sys::c_jets::jets_wrapper::high_8, - Elements::Increment16 => &simplicity_sys::c_jets::jets_wrapper::increment_16, - Elements::Increment32 => &simplicity_sys::c_jets::jets_wrapper::increment_32, - Elements::Increment64 => &simplicity_sys::c_jets::jets_wrapper::increment_64, - Elements::Increment8 => &simplicity_sys::c_jets::jets_wrapper::increment_8, - Elements::InputAmount => &simplicity_sys::c_jets::jets_wrapper::input_amount, - Elements::InputAmountsHash => &simplicity_sys::c_jets::jets_wrapper::input_amounts_hash, - Elements::InputAnnexHash => &simplicity_sys::c_jets::jets_wrapper::input_annex_hash, - Elements::InputAnnexesHash => &simplicity_sys::c_jets::jets_wrapper::input_annexes_hash, - Elements::InputAsset => &simplicity_sys::c_jets::jets_wrapper::input_asset, - Elements::InputHash => &simplicity_sys::c_jets::jets_wrapper::input_hash, - Elements::InputOutpointsHash => &simplicity_sys::c_jets::jets_wrapper::input_outpoints_hash, - Elements::InputPegin => &simplicity_sys::c_jets::jets_wrapper::input_pegin, - Elements::InputPrevOutpoint => &simplicity_sys::c_jets::jets_wrapper::input_prev_outpoint, - Elements::InputScriptHash => &simplicity_sys::c_jets::jets_wrapper::input_script_hash, - Elements::InputScriptSigHash => &simplicity_sys::c_jets::jets_wrapper::input_script_sig_hash, - Elements::InputScriptSigsHash => &simplicity_sys::c_jets::jets_wrapper::input_script_sigs_hash, - Elements::InputScriptsHash => &simplicity_sys::c_jets::jets_wrapper::input_scripts_hash, - Elements::InputSequence => &simplicity_sys::c_jets::jets_wrapper::input_sequence, - Elements::InputSequencesHash => &simplicity_sys::c_jets::jets_wrapper::input_sequences_hash, - Elements::InputUtxoHash => &simplicity_sys::c_jets::jets_wrapper::input_utxo_hash, - Elements::InputUtxosHash => &simplicity_sys::c_jets::jets_wrapper::input_utxos_hash, - Elements::InputsHash => &simplicity_sys::c_jets::jets_wrapper::inputs_hash, - Elements::InternalKey => &simplicity_sys::c_jets::jets_wrapper::internal_key, - Elements::IsOne16 => &simplicity_sys::c_jets::jets_wrapper::is_one_16, - Elements::IsOne32 => &simplicity_sys::c_jets::jets_wrapper::is_one_32, - Elements::IsOne64 => &simplicity_sys::c_jets::jets_wrapper::is_one_64, - Elements::IsOne8 => &simplicity_sys::c_jets::jets_wrapper::is_one_8, - Elements::IsZero16 => &simplicity_sys::c_jets::jets_wrapper::is_zero_16, - Elements::IsZero32 => &simplicity_sys::c_jets::jets_wrapper::is_zero_32, - Elements::IsZero64 => &simplicity_sys::c_jets::jets_wrapper::is_zero_64, - Elements::IsZero8 => &simplicity_sys::c_jets::jets_wrapper::is_zero_8, - Elements::Issuance => &simplicity_sys::c_jets::jets_wrapper::issuance, - Elements::IssuanceAsset => &simplicity_sys::c_jets::jets_wrapper::issuance_asset, - Elements::IssuanceAssetAmount => &simplicity_sys::c_jets::jets_wrapper::issuance_asset_amount, - Elements::IssuanceAssetAmountsHash => &simplicity_sys::c_jets::jets_wrapper::issuance_asset_amounts_hash, - Elements::IssuanceAssetProof => &simplicity_sys::c_jets::jets_wrapper::issuance_asset_proof, - Elements::IssuanceBlindingEntropyHash => &simplicity_sys::c_jets::jets_wrapper::issuance_blinding_entropy_hash, - Elements::IssuanceEntropy => &simplicity_sys::c_jets::jets_wrapper::issuance_entropy, - Elements::IssuanceHash => &simplicity_sys::c_jets::jets_wrapper::issuance_hash, - Elements::IssuanceRangeProofsHash => &simplicity_sys::c_jets::jets_wrapper::issuance_range_proofs_hash, - Elements::IssuanceToken => &simplicity_sys::c_jets::jets_wrapper::issuance_token, - Elements::IssuanceTokenAmount => &simplicity_sys::c_jets::jets_wrapper::issuance_token_amount, - Elements::IssuanceTokenAmountsHash => &simplicity_sys::c_jets::jets_wrapper::issuance_token_amounts_hash, - Elements::IssuanceTokenProof => &simplicity_sys::c_jets::jets_wrapper::issuance_token_proof, - Elements::IssuancesHash => &simplicity_sys::c_jets::jets_wrapper::issuances_hash, - Elements::LbtcAsset => &simplicity_sys::c_jets::jets_wrapper::lbtc_asset, - Elements::Le16 => &simplicity_sys::c_jets::jets_wrapper::le_16, - Elements::Le32 => &simplicity_sys::c_jets::jets_wrapper::le_32, - Elements::Le64 => &simplicity_sys::c_jets::jets_wrapper::le_64, - Elements::Le8 => &simplicity_sys::c_jets::jets_wrapper::le_8, - Elements::LeftExtend16_32 => &simplicity_sys::c_jets::jets_wrapper::left_extend_16_32, - Elements::LeftExtend16_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_16_64, - Elements::LeftExtend1_16 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_16, - Elements::LeftExtend1_32 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_32, - Elements::LeftExtend1_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_64, - Elements::LeftExtend1_8 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_8, - Elements::LeftExtend32_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_32_64, - Elements::LeftExtend8_16 => &simplicity_sys::c_jets::jets_wrapper::left_extend_8_16, - Elements::LeftExtend8_32 => &simplicity_sys::c_jets::jets_wrapper::left_extend_8_32, - Elements::LeftExtend8_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_8_64, - Elements::LeftPadHigh16_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_32, - Elements::LeftPadHigh16_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_64, - Elements::LeftPadHigh1_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_16, - Elements::LeftPadHigh1_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_32, - Elements::LeftPadHigh1_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_64, - Elements::LeftPadHigh1_8 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_8, - Elements::LeftPadHigh32_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_32_64, - Elements::LeftPadHigh8_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_16, - Elements::LeftPadHigh8_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_32, - Elements::LeftPadHigh8_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_64, - Elements::LeftPadLow16_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_32, - Elements::LeftPadLow16_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_64, - Elements::LeftPadLow1_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_16, - Elements::LeftPadLow1_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_32, - Elements::LeftPadLow1_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_64, - Elements::LeftPadLow1_8 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_8, - Elements::LeftPadLow32_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_32_64, - Elements::LeftPadLow8_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_16, - Elements::LeftPadLow8_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_32, - Elements::LeftPadLow8_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_64, - Elements::LeftRotate16 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_16, - Elements::LeftRotate32 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_32, - Elements::LeftRotate64 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_64, - Elements::LeftRotate8 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_8, - Elements::LeftShift16 => &simplicity_sys::c_jets::jets_wrapper::left_shift_16, - Elements::LeftShift32 => &simplicity_sys::c_jets::jets_wrapper::left_shift_32, - Elements::LeftShift64 => &simplicity_sys::c_jets::jets_wrapper::left_shift_64, - Elements::LeftShift8 => &simplicity_sys::c_jets::jets_wrapper::left_shift_8, - Elements::LeftShiftWith16 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_16, - Elements::LeftShiftWith32 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_32, - Elements::LeftShiftWith64 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_64, - Elements::LeftShiftWith8 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_8, - Elements::Leftmost16_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_1, - Elements::Leftmost16_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_2, - Elements::Leftmost16_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_4, - Elements::Leftmost16_8 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_8, - Elements::Leftmost32_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_1, - Elements::Leftmost32_16 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_16, - Elements::Leftmost32_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_2, - Elements::Leftmost32_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_4, - Elements::Leftmost32_8 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_8, - Elements::Leftmost64_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_1, - Elements::Leftmost64_16 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_16, - Elements::Leftmost64_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_2, - Elements::Leftmost64_32 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_32, - Elements::Leftmost64_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_4, - Elements::Leftmost64_8 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_8, - Elements::Leftmost8_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_8_1, - Elements::Leftmost8_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_8_2, - Elements::Leftmost8_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_8_4, - Elements::LinearCombination1 => &simplicity_sys::c_jets::jets_wrapper::linear_combination_1, - Elements::LinearVerify1 => &simplicity_sys::c_jets::jets_wrapper::linear_verify_1, - Elements::LockTime => &simplicity_sys::c_jets::jets_wrapper::lock_time, - Elements::Low1 => &simplicity_sys::c_jets::jets_wrapper::low_1, - Elements::Low16 => &simplicity_sys::c_jets::jets_wrapper::low_16, - Elements::Low32 => &simplicity_sys::c_jets::jets_wrapper::low_32, - Elements::Low64 => &simplicity_sys::c_jets::jets_wrapper::low_64, - Elements::Low8 => &simplicity_sys::c_jets::jets_wrapper::low_8, - Elements::Lt16 => &simplicity_sys::c_jets::jets_wrapper::lt_16, - Elements::Lt32 => &simplicity_sys::c_jets::jets_wrapper::lt_32, - Elements::Lt64 => &simplicity_sys::c_jets::jets_wrapper::lt_64, - Elements::Lt8 => &simplicity_sys::c_jets::jets_wrapper::lt_8, - Elements::Maj1 => &simplicity_sys::c_jets::jets_wrapper::maj_1, - Elements::Maj16 => &simplicity_sys::c_jets::jets_wrapper::maj_16, - Elements::Maj32 => &simplicity_sys::c_jets::jets_wrapper::maj_32, - Elements::Maj64 => &simplicity_sys::c_jets::jets_wrapper::maj_64, - Elements::Maj8 => &simplicity_sys::c_jets::jets_wrapper::maj_8, - Elements::Max16 => &simplicity_sys::c_jets::jets_wrapper::max_16, - Elements::Max32 => &simplicity_sys::c_jets::jets_wrapper::max_32, - Elements::Max64 => &simplicity_sys::c_jets::jets_wrapper::max_64, - Elements::Max8 => &simplicity_sys::c_jets::jets_wrapper::max_8, - Elements::Median16 => &simplicity_sys::c_jets::jets_wrapper::median_16, - Elements::Median32 => &simplicity_sys::c_jets::jets_wrapper::median_32, - Elements::Median64 => &simplicity_sys::c_jets::jets_wrapper::median_64, - Elements::Median8 => &simplicity_sys::c_jets::jets_wrapper::median_8, - Elements::Min16 => &simplicity_sys::c_jets::jets_wrapper::min_16, - Elements::Min32 => &simplicity_sys::c_jets::jets_wrapper::min_32, - Elements::Min64 => &simplicity_sys::c_jets::jets_wrapper::min_64, - Elements::Min8 => &simplicity_sys::c_jets::jets_wrapper::min_8, - Elements::Modulo16 => &simplicity_sys::c_jets::jets_wrapper::modulo_16, - Elements::Modulo32 => &simplicity_sys::c_jets::jets_wrapper::modulo_32, - Elements::Modulo64 => &simplicity_sys::c_jets::jets_wrapper::modulo_64, - Elements::Modulo8 => &simplicity_sys::c_jets::jets_wrapper::modulo_8, - Elements::Multiply16 => &simplicity_sys::c_jets::jets_wrapper::multiply_16, - Elements::Multiply32 => &simplicity_sys::c_jets::jets_wrapper::multiply_32, - Elements::Multiply64 => &simplicity_sys::c_jets::jets_wrapper::multiply_64, - Elements::Multiply8 => &simplicity_sys::c_jets::jets_wrapper::multiply_8, - Elements::Negate16 => &simplicity_sys::c_jets::jets_wrapper::negate_16, - Elements::Negate32 => &simplicity_sys::c_jets::jets_wrapper::negate_32, - Elements::Negate64 => &simplicity_sys::c_jets::jets_wrapper::negate_64, - Elements::Negate8 => &simplicity_sys::c_jets::jets_wrapper::negate_8, - Elements::NewIssuanceContract => &simplicity_sys::c_jets::jets_wrapper::new_issuance_contract, - Elements::NonceHash => &simplicity_sys::c_jets::jets_wrapper::nonce_hash, - Elements::NumInputs => &simplicity_sys::c_jets::jets_wrapper::num_inputs, - Elements::NumOutputs => &simplicity_sys::c_jets::jets_wrapper::num_outputs, - Elements::One16 => &simplicity_sys::c_jets::jets_wrapper::one_16, - Elements::One32 => &simplicity_sys::c_jets::jets_wrapper::one_32, - Elements::One64 => &simplicity_sys::c_jets::jets_wrapper::one_64, - Elements::One8 => &simplicity_sys::c_jets::jets_wrapper::one_8, - Elements::Or1 => &simplicity_sys::c_jets::jets_wrapper::or_1, - Elements::Or16 => &simplicity_sys::c_jets::jets_wrapper::or_16, - Elements::Or32 => &simplicity_sys::c_jets::jets_wrapper::or_32, - Elements::Or64 => &simplicity_sys::c_jets::jets_wrapper::or_64, - Elements::Or8 => &simplicity_sys::c_jets::jets_wrapper::or_8, - Elements::OutpointHash => &simplicity_sys::c_jets::jets_wrapper::outpoint_hash, - Elements::OutputAmount => &simplicity_sys::c_jets::jets_wrapper::output_amount, - Elements::OutputAmountsHash => &simplicity_sys::c_jets::jets_wrapper::output_amounts_hash, - Elements::OutputAsset => &simplicity_sys::c_jets::jets_wrapper::output_asset, - Elements::OutputHash => &simplicity_sys::c_jets::jets_wrapper::output_hash, - Elements::OutputIsFee => &simplicity_sys::c_jets::jets_wrapper::output_is_fee, - Elements::OutputNonce => &simplicity_sys::c_jets::jets_wrapper::output_nonce, - Elements::OutputNoncesHash => &simplicity_sys::c_jets::jets_wrapper::output_nonces_hash, - Elements::OutputNullDatum => &simplicity_sys::c_jets::jets_wrapper::output_null_datum, - Elements::OutputRangeProof => &simplicity_sys::c_jets::jets_wrapper::output_range_proof, - Elements::OutputRangeProofsHash => &simplicity_sys::c_jets::jets_wrapper::output_range_proofs_hash, - Elements::OutputScriptHash => &simplicity_sys::c_jets::jets_wrapper::output_script_hash, - Elements::OutputScriptsHash => &simplicity_sys::c_jets::jets_wrapper::output_scripts_hash, - Elements::OutputSurjectionProof => &simplicity_sys::c_jets::jets_wrapper::output_surjection_proof, - Elements::OutputSurjectionProofsHash => &simplicity_sys::c_jets::jets_wrapper::output_surjection_proofs_hash, - Elements::OutputsHash => &simplicity_sys::c_jets::jets_wrapper::outputs_hash, - Elements::ParseLock => &simplicity_sys::c_jets::jets_wrapper::parse_lock, - Elements::ParseSequence => &simplicity_sys::c_jets::jets_wrapper::parse_sequence, - Elements::PointVerify1 => &simplicity_sys::c_jets::jets_wrapper::point_verify_1, - Elements::ReissuanceBlinding => &simplicity_sys::c_jets::jets_wrapper::reissuance_blinding, - Elements::ReissuanceEntropy => &simplicity_sys::c_jets::jets_wrapper::reissuance_entropy, - Elements::RightExtend16_32 => &simplicity_sys::c_jets::jets_wrapper::right_extend_16_32, - Elements::RightExtend16_64 => &simplicity_sys::c_jets::jets_wrapper::right_extend_16_64, - Elements::RightExtend32_64 => &simplicity_sys::c_jets::jets_wrapper::right_extend_32_64, - Elements::RightExtend8_16 => &simplicity_sys::c_jets::jets_wrapper::right_extend_8_16, - Elements::RightExtend8_32 => &simplicity_sys::c_jets::jets_wrapper::right_extend_8_32, - Elements::RightExtend8_64 => &simplicity_sys::c_jets::jets_wrapper::right_extend_8_64, - Elements::RightPadHigh16_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_32, - Elements::RightPadHigh16_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_64, - Elements::RightPadHigh1_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_16, - Elements::RightPadHigh1_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_32, - Elements::RightPadHigh1_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_64, - Elements::RightPadHigh1_8 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_8, - Elements::RightPadHigh32_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_32_64, - Elements::RightPadHigh8_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_16, - Elements::RightPadHigh8_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_32, - Elements::RightPadHigh8_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_64, - Elements::RightPadLow16_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_32, - Elements::RightPadLow16_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_64, - Elements::RightPadLow1_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_16, - Elements::RightPadLow1_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_32, - Elements::RightPadLow1_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_64, - Elements::RightPadLow1_8 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_8, - Elements::RightPadLow32_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_32_64, - Elements::RightPadLow8_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_16, - Elements::RightPadLow8_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_32, - Elements::RightPadLow8_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_64, - Elements::RightRotate16 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_16, - Elements::RightRotate32 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_32, - Elements::RightRotate64 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_64, - Elements::RightRotate8 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_8, - Elements::RightShift16 => &simplicity_sys::c_jets::jets_wrapper::right_shift_16, - Elements::RightShift32 => &simplicity_sys::c_jets::jets_wrapper::right_shift_32, - Elements::RightShift64 => &simplicity_sys::c_jets::jets_wrapper::right_shift_64, - Elements::RightShift8 => &simplicity_sys::c_jets::jets_wrapper::right_shift_8, - Elements::RightShiftWith16 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_16, - Elements::RightShiftWith32 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_32, - Elements::RightShiftWith64 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_64, - Elements::RightShiftWith8 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_8, - Elements::Rightmost16_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_1, - Elements::Rightmost16_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_2, - Elements::Rightmost16_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_4, - Elements::Rightmost16_8 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_8, - Elements::Rightmost32_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_1, - Elements::Rightmost32_16 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_16, - Elements::Rightmost32_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_2, - Elements::Rightmost32_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_4, - Elements::Rightmost32_8 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_8, - Elements::Rightmost64_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_1, - Elements::Rightmost64_16 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_16, - Elements::Rightmost64_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_2, - Elements::Rightmost64_32 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_32, - Elements::Rightmost64_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_4, - Elements::Rightmost64_8 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_8, - Elements::Rightmost8_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_8_1, - Elements::Rightmost8_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_8_2, - Elements::Rightmost8_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_8_4, - Elements::ScalarAdd => &simplicity_sys::c_jets::jets_wrapper::scalar_add, - Elements::ScalarInvert => &simplicity_sys::c_jets::jets_wrapper::scalar_invert, - Elements::ScalarIsZero => &simplicity_sys::c_jets::jets_wrapper::scalar_is_zero, - Elements::ScalarMultiply => &simplicity_sys::c_jets::jets_wrapper::scalar_multiply, - Elements::ScalarMultiplyLambda => &simplicity_sys::c_jets::jets_wrapper::scalar_multiply_lambda, - Elements::ScalarNegate => &simplicity_sys::c_jets::jets_wrapper::scalar_negate, - Elements::ScalarNormalize => &simplicity_sys::c_jets::jets_wrapper::scalar_normalize, - Elements::ScalarSquare => &simplicity_sys::c_jets::jets_wrapper::scalar_square, - Elements::Scale => &simplicity_sys::c_jets::jets_wrapper::scale, - Elements::ScriptCMR => &simplicity_sys::c_jets::jets_wrapper::script_cmr, - Elements::Sha256Block => &simplicity_sys::c_jets::jets_wrapper::sha_256_block, - Elements::Sha256Ctx8Add1 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_1, - Elements::Sha256Ctx8Add128 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_128, - Elements::Sha256Ctx8Add16 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_16, - Elements::Sha256Ctx8Add2 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_2, - Elements::Sha256Ctx8Add256 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_256, - Elements::Sha256Ctx8Add32 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_32, - Elements::Sha256Ctx8Add4 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_4, - Elements::Sha256Ctx8Add512 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_512, - Elements::Sha256Ctx8Add64 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_64, - Elements::Sha256Ctx8Add8 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_8, - Elements::Sha256Ctx8AddBuffer511 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_buffer_511, - Elements::Sha256Ctx8Finalize => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_finalize, - Elements::Sha256Ctx8Init => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_init, - Elements::Sha256Iv => &simplicity_sys::c_jets::jets_wrapper::sha_256_iv, - Elements::SigAllHash => &simplicity_sys::c_jets::jets_wrapper::sig_all_hash, - Elements::Some1 => &simplicity_sys::c_jets::jets_wrapper::some_1, - Elements::Some16 => &simplicity_sys::c_jets::jets_wrapper::some_16, - Elements::Some32 => &simplicity_sys::c_jets::jets_wrapper::some_32, - Elements::Some64 => &simplicity_sys::c_jets::jets_wrapper::some_64, - Elements::Some8 => &simplicity_sys::c_jets::jets_wrapper::some_8, - Elements::Subtract16 => &simplicity_sys::c_jets::jets_wrapper::subtract_16, - Elements::Subtract32 => &simplicity_sys::c_jets::jets_wrapper::subtract_32, - Elements::Subtract64 => &simplicity_sys::c_jets::jets_wrapper::subtract_64, - Elements::Subtract8 => &simplicity_sys::c_jets::jets_wrapper::subtract_8, - Elements::Swu => &simplicity_sys::c_jets::jets_wrapper::swu, - Elements::TapEnvHash => &simplicity_sys::c_jets::jets_wrapper::tap_env_hash, - Elements::TapdataInit => &simplicity_sys::c_jets::jets_wrapper::tapdata_init, - Elements::TapleafHash => &simplicity_sys::c_jets::jets_wrapper::tapleaf_hash, - Elements::TapleafVersion => &simplicity_sys::c_jets::jets_wrapper::tapleaf_version, - Elements::Tappath => &simplicity_sys::c_jets::jets_wrapper::tappath, - Elements::TappathHash => &simplicity_sys::c_jets::jets_wrapper::tappath_hash, - Elements::TotalFee => &simplicity_sys::c_jets::jets_wrapper::total_fee, - Elements::TransactionId => &simplicity_sys::c_jets::jets_wrapper::transaction_id, - Elements::TxHash => &simplicity_sys::c_jets::jets_wrapper::tx_hash, - Elements::TxIsFinal => &simplicity_sys::c_jets::jets_wrapper::tx_is_final, - Elements::TxLockDistance => &simplicity_sys::c_jets::jets_wrapper::tx_lock_distance, - Elements::TxLockDuration => &simplicity_sys::c_jets::jets_wrapper::tx_lock_duration, - Elements::TxLockHeight => &simplicity_sys::c_jets::jets_wrapper::tx_lock_height, - Elements::TxLockTime => &simplicity_sys::c_jets::jets_wrapper::tx_lock_time, - Elements::Verify => &simplicity_sys::c_jets::jets_wrapper::verify, - Elements::Version => &simplicity_sys::c_jets::jets_wrapper::version, - Elements::Xor1 => &simplicity_sys::c_jets::jets_wrapper::xor_1, - Elements::Xor16 => &simplicity_sys::c_jets::jets_wrapper::xor_16, - Elements::Xor32 => &simplicity_sys::c_jets::jets_wrapper::xor_32, - Elements::Xor64 => &simplicity_sys::c_jets::jets_wrapper::xor_64, - Elements::Xor8 => &simplicity_sys::c_jets::jets_wrapper::xor_8, - Elements::XorXor1 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_1, - Elements::XorXor16 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_16, - Elements::XorXor32 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_32, - Elements::XorXor64 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_64, - Elements::XorXor8 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_8, - } - } - fn cost(&self) -> Cost { match self { Elements::Add16 => Cost::from_milliweight(108), @@ -9338,3 +8890,650 @@ impl str::FromStr for Elements { } } } + +pub type ElementsTxEnv = ElementsEnv>; + +impl JetEnvironment for ElementsTxEnv { + type Jet = Elements; + type CJetEnvironment = CElementsTxEnv; + + fn c_jet_env(&self) -> &Self::CJetEnvironment { + self.c_tx_env() + } + + fn c_jet_ptr( + jet: &Self::Jet, + ) -> fn(&mut CFrameItem, CFrameItem, &Self::CJetEnvironment) -> bool { + match jet { + Elements::Add16 => simplicity_sys::c_jets::jets_wrapper::add_16, + Elements::Add32 => simplicity_sys::c_jets::jets_wrapper::add_32, + Elements::Add64 => simplicity_sys::c_jets::jets_wrapper::add_64, + Elements::Add8 => simplicity_sys::c_jets::jets_wrapper::add_8, + Elements::All16 => simplicity_sys::c_jets::jets_wrapper::all_16, + Elements::All32 => simplicity_sys::c_jets::jets_wrapper::all_32, + Elements::All64 => simplicity_sys::c_jets::jets_wrapper::all_64, + Elements::All8 => simplicity_sys::c_jets::jets_wrapper::all_8, + Elements::And1 => simplicity_sys::c_jets::jets_wrapper::and_1, + Elements::And16 => simplicity_sys::c_jets::jets_wrapper::and_16, + Elements::And32 => simplicity_sys::c_jets::jets_wrapper::and_32, + Elements::And64 => simplicity_sys::c_jets::jets_wrapper::and_64, + Elements::And8 => simplicity_sys::c_jets::jets_wrapper::and_8, + Elements::AnnexHash => simplicity_sys::c_jets::jets_wrapper::annex_hash, + Elements::AssetAmountHash => simplicity_sys::c_jets::jets_wrapper::asset_amount_hash, + Elements::Bip0340Verify => simplicity_sys::c_jets::jets_wrapper::bip_0340_verify, + Elements::BuildTapbranch => simplicity_sys::c_jets::jets_wrapper::build_tapbranch, + Elements::BuildTapleafSimplicity => { + simplicity_sys::c_jets::jets_wrapper::build_tapleaf_simplicity + } + Elements::BuildTaptweak => simplicity_sys::c_jets::jets_wrapper::build_taptweak, + Elements::CalculateAsset => simplicity_sys::c_jets::jets_wrapper::calculate_asset, + Elements::CalculateConfidentialToken => { + simplicity_sys::c_jets::jets_wrapper::calculate_confidential_token + } + Elements::CalculateExplicitToken => { + simplicity_sys::c_jets::jets_wrapper::calculate_explicit_token + } + Elements::CalculateIssuanceEntropy => { + simplicity_sys::c_jets::jets_wrapper::calculate_issuance_entropy + } + Elements::Ch1 => simplicity_sys::c_jets::jets_wrapper::ch_1, + Elements::Ch16 => simplicity_sys::c_jets::jets_wrapper::ch_16, + Elements::Ch32 => simplicity_sys::c_jets::jets_wrapper::ch_32, + Elements::Ch64 => simplicity_sys::c_jets::jets_wrapper::ch_64, + Elements::Ch8 => simplicity_sys::c_jets::jets_wrapper::ch_8, + Elements::CheckLockDistance => { + simplicity_sys::c_jets::jets_wrapper::check_lock_distance + } + Elements::CheckLockDuration => { + simplicity_sys::c_jets::jets_wrapper::check_lock_duration + } + Elements::CheckLockHeight => simplicity_sys::c_jets::jets_wrapper::check_lock_height, + Elements::CheckLockTime => simplicity_sys::c_jets::jets_wrapper::check_lock_time, + Elements::CheckSigVerify => simplicity_sys::c_jets::jets_wrapper::check_sig_verify, + Elements::Complement1 => simplicity_sys::c_jets::jets_wrapper::complement_1, + Elements::Complement16 => simplicity_sys::c_jets::jets_wrapper::complement_16, + Elements::Complement32 => simplicity_sys::c_jets::jets_wrapper::complement_32, + Elements::Complement64 => simplicity_sys::c_jets::jets_wrapper::complement_64, + Elements::Complement8 => simplicity_sys::c_jets::jets_wrapper::complement_8, + Elements::CurrentAmount => simplicity_sys::c_jets::jets_wrapper::current_amount, + Elements::CurrentAnnexHash => simplicity_sys::c_jets::jets_wrapper::current_annex_hash, + Elements::CurrentAsset => simplicity_sys::c_jets::jets_wrapper::current_asset, + Elements::CurrentIndex => simplicity_sys::c_jets::jets_wrapper::current_index, + Elements::CurrentIssuanceAssetAmount => { + simplicity_sys::c_jets::jets_wrapper::current_issuance_asset_amount + } + Elements::CurrentIssuanceAssetProof => { + simplicity_sys::c_jets::jets_wrapper::current_issuance_asset_proof + } + Elements::CurrentIssuanceTokenAmount => { + simplicity_sys::c_jets::jets_wrapper::current_issuance_token_amount + } + Elements::CurrentIssuanceTokenProof => { + simplicity_sys::c_jets::jets_wrapper::current_issuance_token_proof + } + Elements::CurrentNewIssuanceContract => { + simplicity_sys::c_jets::jets_wrapper::current_new_issuance_contract + } + Elements::CurrentPegin => simplicity_sys::c_jets::jets_wrapper::current_pegin, + Elements::CurrentPrevOutpoint => { + simplicity_sys::c_jets::jets_wrapper::current_prev_outpoint + } + Elements::CurrentReissuanceBlinding => { + simplicity_sys::c_jets::jets_wrapper::current_reissuance_blinding + } + Elements::CurrentReissuanceEntropy => { + simplicity_sys::c_jets::jets_wrapper::current_reissuance_entropy + } + Elements::CurrentScriptHash => { + simplicity_sys::c_jets::jets_wrapper::current_script_hash + } + Elements::CurrentScriptSigHash => { + simplicity_sys::c_jets::jets_wrapper::current_script_sig_hash + } + Elements::CurrentSequence => simplicity_sys::c_jets::jets_wrapper::current_sequence, + Elements::Decompress => simplicity_sys::c_jets::jets_wrapper::decompress, + Elements::Decrement16 => simplicity_sys::c_jets::jets_wrapper::decrement_16, + Elements::Decrement32 => simplicity_sys::c_jets::jets_wrapper::decrement_32, + Elements::Decrement64 => simplicity_sys::c_jets::jets_wrapper::decrement_64, + Elements::Decrement8 => simplicity_sys::c_jets::jets_wrapper::decrement_8, + Elements::DivMod128_64 => simplicity_sys::c_jets::jets_wrapper::div_mod_128_64, + Elements::DivMod16 => simplicity_sys::c_jets::jets_wrapper::div_mod_16, + Elements::DivMod32 => simplicity_sys::c_jets::jets_wrapper::div_mod_32, + Elements::DivMod64 => simplicity_sys::c_jets::jets_wrapper::div_mod_64, + Elements::DivMod8 => simplicity_sys::c_jets::jets_wrapper::div_mod_8, + Elements::Divide16 => simplicity_sys::c_jets::jets_wrapper::divide_16, + Elements::Divide32 => simplicity_sys::c_jets::jets_wrapper::divide_32, + Elements::Divide64 => simplicity_sys::c_jets::jets_wrapper::divide_64, + Elements::Divide8 => simplicity_sys::c_jets::jets_wrapper::divide_8, + Elements::Divides16 => simplicity_sys::c_jets::jets_wrapper::divides_16, + Elements::Divides32 => simplicity_sys::c_jets::jets_wrapper::divides_32, + Elements::Divides64 => simplicity_sys::c_jets::jets_wrapper::divides_64, + Elements::Divides8 => simplicity_sys::c_jets::jets_wrapper::divides_8, + Elements::Eq1 => simplicity_sys::c_jets::jets_wrapper::eq_1, + Elements::Eq16 => simplicity_sys::c_jets::jets_wrapper::eq_16, + Elements::Eq256 => simplicity_sys::c_jets::jets_wrapper::eq_256, + Elements::Eq32 => simplicity_sys::c_jets::jets_wrapper::eq_32, + Elements::Eq64 => simplicity_sys::c_jets::jets_wrapper::eq_64, + Elements::Eq8 => simplicity_sys::c_jets::jets_wrapper::eq_8, + Elements::FeAdd => simplicity_sys::c_jets::jets_wrapper::fe_add, + Elements::FeInvert => simplicity_sys::c_jets::jets_wrapper::fe_invert, + Elements::FeIsOdd => simplicity_sys::c_jets::jets_wrapper::fe_is_odd, + Elements::FeIsZero => simplicity_sys::c_jets::jets_wrapper::fe_is_zero, + Elements::FeMultiply => simplicity_sys::c_jets::jets_wrapper::fe_multiply, + Elements::FeMultiplyBeta => simplicity_sys::c_jets::jets_wrapper::fe_multiply_beta, + Elements::FeNegate => simplicity_sys::c_jets::jets_wrapper::fe_negate, + Elements::FeNormalize => simplicity_sys::c_jets::jets_wrapper::fe_normalize, + Elements::FeSquare => simplicity_sys::c_jets::jets_wrapper::fe_square, + Elements::FeSquareRoot => simplicity_sys::c_jets::jets_wrapper::fe_square_root, + Elements::FullAdd16 => simplicity_sys::c_jets::jets_wrapper::full_add_16, + Elements::FullAdd32 => simplicity_sys::c_jets::jets_wrapper::full_add_32, + Elements::FullAdd64 => simplicity_sys::c_jets::jets_wrapper::full_add_64, + Elements::FullAdd8 => simplicity_sys::c_jets::jets_wrapper::full_add_8, + Elements::FullDecrement16 => simplicity_sys::c_jets::jets_wrapper::full_decrement_16, + Elements::FullDecrement32 => simplicity_sys::c_jets::jets_wrapper::full_decrement_32, + Elements::FullDecrement64 => simplicity_sys::c_jets::jets_wrapper::full_decrement_64, + Elements::FullDecrement8 => simplicity_sys::c_jets::jets_wrapper::full_decrement_8, + Elements::FullIncrement16 => simplicity_sys::c_jets::jets_wrapper::full_increment_16, + Elements::FullIncrement32 => simplicity_sys::c_jets::jets_wrapper::full_increment_32, + Elements::FullIncrement64 => simplicity_sys::c_jets::jets_wrapper::full_increment_64, + Elements::FullIncrement8 => simplicity_sys::c_jets::jets_wrapper::full_increment_8, + Elements::FullLeftShift16_1 => { + simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_1 + } + Elements::FullLeftShift16_2 => { + simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_2 + } + Elements::FullLeftShift16_4 => { + simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_4 + } + Elements::FullLeftShift16_8 => { + simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_8 + } + Elements::FullLeftShift32_1 => { + simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_1 + } + Elements::FullLeftShift32_16 => { + simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_16 + } + Elements::FullLeftShift32_2 => { + simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_2 + } + Elements::FullLeftShift32_4 => { + simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_4 + } + Elements::FullLeftShift32_8 => { + simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_8 + } + Elements::FullLeftShift64_1 => { + simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_1 + } + Elements::FullLeftShift64_16 => { + simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_16 + } + Elements::FullLeftShift64_2 => { + simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_2 + } + Elements::FullLeftShift64_32 => { + simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_32 + } + Elements::FullLeftShift64_4 => { + simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_4 + } + Elements::FullLeftShift64_8 => { + simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_8 + } + Elements::FullLeftShift8_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_1, + Elements::FullLeftShift8_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_2, + Elements::FullLeftShift8_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_4, + Elements::FullMultiply16 => simplicity_sys::c_jets::jets_wrapper::full_multiply_16, + Elements::FullMultiply32 => simplicity_sys::c_jets::jets_wrapper::full_multiply_32, + Elements::FullMultiply64 => simplicity_sys::c_jets::jets_wrapper::full_multiply_64, + Elements::FullMultiply8 => simplicity_sys::c_jets::jets_wrapper::full_multiply_8, + Elements::FullRightShift16_1 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_1 + } + Elements::FullRightShift16_2 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_2 + } + Elements::FullRightShift16_4 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_4 + } + Elements::FullRightShift16_8 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_8 + } + Elements::FullRightShift32_1 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_1 + } + Elements::FullRightShift32_16 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_16 + } + Elements::FullRightShift32_2 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_2 + } + Elements::FullRightShift32_4 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_4 + } + Elements::FullRightShift32_8 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_8 + } + Elements::FullRightShift64_1 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_1 + } + Elements::FullRightShift64_16 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_16 + } + Elements::FullRightShift64_2 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_2 + } + Elements::FullRightShift64_32 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_32 + } + Elements::FullRightShift64_4 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_4 + } + Elements::FullRightShift64_8 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_8 + } + Elements::FullRightShift8_1 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_1 + } + Elements::FullRightShift8_2 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_2 + } + Elements::FullRightShift8_4 => { + simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_4 + } + Elements::FullSubtract16 => simplicity_sys::c_jets::jets_wrapper::full_subtract_16, + Elements::FullSubtract32 => simplicity_sys::c_jets::jets_wrapper::full_subtract_32, + Elements::FullSubtract64 => simplicity_sys::c_jets::jets_wrapper::full_subtract_64, + Elements::FullSubtract8 => simplicity_sys::c_jets::jets_wrapper::full_subtract_8, + Elements::GeIsOnCurve => simplicity_sys::c_jets::jets_wrapper::ge_is_on_curve, + Elements::GeNegate => simplicity_sys::c_jets::jets_wrapper::ge_negate, + Elements::GejAdd => simplicity_sys::c_jets::jets_wrapper::gej_add, + Elements::GejDouble => simplicity_sys::c_jets::jets_wrapper::gej_double, + Elements::GejEquiv => simplicity_sys::c_jets::jets_wrapper::gej_equiv, + Elements::GejGeAdd => simplicity_sys::c_jets::jets_wrapper::gej_ge_add, + Elements::GejGeAddEx => simplicity_sys::c_jets::jets_wrapper::gej_ge_add_ex, + Elements::GejGeEquiv => simplicity_sys::c_jets::jets_wrapper::gej_ge_equiv, + Elements::GejInfinity => simplicity_sys::c_jets::jets_wrapper::gej_infinity, + Elements::GejIsInfinity => simplicity_sys::c_jets::jets_wrapper::gej_is_infinity, + Elements::GejIsOnCurve => simplicity_sys::c_jets::jets_wrapper::gej_is_on_curve, + Elements::GejNegate => simplicity_sys::c_jets::jets_wrapper::gej_negate, + Elements::GejNormalize => simplicity_sys::c_jets::jets_wrapper::gej_normalize, + Elements::GejRescale => simplicity_sys::c_jets::jets_wrapper::gej_rescale, + Elements::GejXEquiv => simplicity_sys::c_jets::jets_wrapper::gej_x_equiv, + Elements::GejYIsOdd => simplicity_sys::c_jets::jets_wrapper::gej_y_is_odd, + Elements::Generate => simplicity_sys::c_jets::jets_wrapper::generate, + Elements::GenesisBlockHash => simplicity_sys::c_jets::jets_wrapper::genesis_block_hash, + Elements::HashToCurve => simplicity_sys::c_jets::jets_wrapper::hash_to_curve, + Elements::High1 => simplicity_sys::c_jets::jets_wrapper::high_1, + Elements::High16 => simplicity_sys::c_jets::jets_wrapper::high_16, + Elements::High32 => simplicity_sys::c_jets::jets_wrapper::high_32, + Elements::High64 => simplicity_sys::c_jets::jets_wrapper::high_64, + Elements::High8 => simplicity_sys::c_jets::jets_wrapper::high_8, + Elements::Increment16 => simplicity_sys::c_jets::jets_wrapper::increment_16, + Elements::Increment32 => simplicity_sys::c_jets::jets_wrapper::increment_32, + Elements::Increment64 => simplicity_sys::c_jets::jets_wrapper::increment_64, + Elements::Increment8 => simplicity_sys::c_jets::jets_wrapper::increment_8, + Elements::InputAmount => simplicity_sys::c_jets::jets_wrapper::input_amount, + Elements::InputAmountsHash => simplicity_sys::c_jets::jets_wrapper::input_amounts_hash, + Elements::InputAnnexHash => simplicity_sys::c_jets::jets_wrapper::input_annex_hash, + Elements::InputAnnexesHash => simplicity_sys::c_jets::jets_wrapper::input_annexes_hash, + Elements::InputAsset => simplicity_sys::c_jets::jets_wrapper::input_asset, + Elements::InputHash => simplicity_sys::c_jets::jets_wrapper::input_hash, + Elements::InputOutpointsHash => { + simplicity_sys::c_jets::jets_wrapper::input_outpoints_hash + } + Elements::InputPegin => simplicity_sys::c_jets::jets_wrapper::input_pegin, + Elements::InputPrevOutpoint => { + simplicity_sys::c_jets::jets_wrapper::input_prev_outpoint + } + Elements::InputScriptHash => simplicity_sys::c_jets::jets_wrapper::input_script_hash, + Elements::InputScriptSigHash => { + simplicity_sys::c_jets::jets_wrapper::input_script_sig_hash + } + Elements::InputScriptSigsHash => { + simplicity_sys::c_jets::jets_wrapper::input_script_sigs_hash + } + Elements::InputScriptsHash => simplicity_sys::c_jets::jets_wrapper::input_scripts_hash, + Elements::InputSequence => simplicity_sys::c_jets::jets_wrapper::input_sequence, + Elements::InputSequencesHash => { + simplicity_sys::c_jets::jets_wrapper::input_sequences_hash + } + Elements::InputUtxoHash => simplicity_sys::c_jets::jets_wrapper::input_utxo_hash, + Elements::InputUtxosHash => simplicity_sys::c_jets::jets_wrapper::input_utxos_hash, + Elements::InputsHash => simplicity_sys::c_jets::jets_wrapper::inputs_hash, + Elements::InternalKey => simplicity_sys::c_jets::jets_wrapper::internal_key, + Elements::IsOne16 => simplicity_sys::c_jets::jets_wrapper::is_one_16, + Elements::IsOne32 => simplicity_sys::c_jets::jets_wrapper::is_one_32, + Elements::IsOne64 => simplicity_sys::c_jets::jets_wrapper::is_one_64, + Elements::IsOne8 => simplicity_sys::c_jets::jets_wrapper::is_one_8, + Elements::IsZero16 => simplicity_sys::c_jets::jets_wrapper::is_zero_16, + Elements::IsZero32 => simplicity_sys::c_jets::jets_wrapper::is_zero_32, + Elements::IsZero64 => simplicity_sys::c_jets::jets_wrapper::is_zero_64, + Elements::IsZero8 => simplicity_sys::c_jets::jets_wrapper::is_zero_8, + Elements::Issuance => simplicity_sys::c_jets::jets_wrapper::issuance, + Elements::IssuanceAsset => simplicity_sys::c_jets::jets_wrapper::issuance_asset, + Elements::IssuanceAssetAmount => { + simplicity_sys::c_jets::jets_wrapper::issuance_asset_amount + } + Elements::IssuanceAssetAmountsHash => { + simplicity_sys::c_jets::jets_wrapper::issuance_asset_amounts_hash + } + Elements::IssuanceAssetProof => { + simplicity_sys::c_jets::jets_wrapper::issuance_asset_proof + } + Elements::IssuanceBlindingEntropyHash => { + simplicity_sys::c_jets::jets_wrapper::issuance_blinding_entropy_hash + } + Elements::IssuanceEntropy => simplicity_sys::c_jets::jets_wrapper::issuance_entropy, + Elements::IssuanceHash => simplicity_sys::c_jets::jets_wrapper::issuance_hash, + Elements::IssuanceRangeProofsHash => { + simplicity_sys::c_jets::jets_wrapper::issuance_range_proofs_hash + } + Elements::IssuanceToken => simplicity_sys::c_jets::jets_wrapper::issuance_token, + Elements::IssuanceTokenAmount => { + simplicity_sys::c_jets::jets_wrapper::issuance_token_amount + } + Elements::IssuanceTokenAmountsHash => { + simplicity_sys::c_jets::jets_wrapper::issuance_token_amounts_hash + } + Elements::IssuanceTokenProof => { + simplicity_sys::c_jets::jets_wrapper::issuance_token_proof + } + Elements::IssuancesHash => simplicity_sys::c_jets::jets_wrapper::issuances_hash, + Elements::LbtcAsset => simplicity_sys::c_jets::jets_wrapper::lbtc_asset, + Elements::Le16 => simplicity_sys::c_jets::jets_wrapper::le_16, + Elements::Le32 => simplicity_sys::c_jets::jets_wrapper::le_32, + Elements::Le64 => simplicity_sys::c_jets::jets_wrapper::le_64, + Elements::Le8 => simplicity_sys::c_jets::jets_wrapper::le_8, + Elements::LeftExtend16_32 => simplicity_sys::c_jets::jets_wrapper::left_extend_16_32, + Elements::LeftExtend16_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_16_64, + Elements::LeftExtend1_16 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_16, + Elements::LeftExtend1_32 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_32, + Elements::LeftExtend1_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_64, + Elements::LeftExtend1_8 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_8, + Elements::LeftExtend32_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_32_64, + Elements::LeftExtend8_16 => simplicity_sys::c_jets::jets_wrapper::left_extend_8_16, + Elements::LeftExtend8_32 => simplicity_sys::c_jets::jets_wrapper::left_extend_8_32, + Elements::LeftExtend8_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_8_64, + Elements::LeftPadHigh16_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_32, + Elements::LeftPadHigh16_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_64, + Elements::LeftPadHigh1_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_16, + Elements::LeftPadHigh1_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_32, + Elements::LeftPadHigh1_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_64, + Elements::LeftPadHigh1_8 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_8, + Elements::LeftPadHigh32_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_32_64, + Elements::LeftPadHigh8_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_16, + Elements::LeftPadHigh8_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_32, + Elements::LeftPadHigh8_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_64, + Elements::LeftPadLow16_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_32, + Elements::LeftPadLow16_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_64, + Elements::LeftPadLow1_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_16, + Elements::LeftPadLow1_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_32, + Elements::LeftPadLow1_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_64, + Elements::LeftPadLow1_8 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_8, + Elements::LeftPadLow32_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_32_64, + Elements::LeftPadLow8_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_16, + Elements::LeftPadLow8_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_32, + Elements::LeftPadLow8_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_64, + Elements::LeftRotate16 => simplicity_sys::c_jets::jets_wrapper::left_rotate_16, + Elements::LeftRotate32 => simplicity_sys::c_jets::jets_wrapper::left_rotate_32, + Elements::LeftRotate64 => simplicity_sys::c_jets::jets_wrapper::left_rotate_64, + Elements::LeftRotate8 => simplicity_sys::c_jets::jets_wrapper::left_rotate_8, + Elements::LeftShift16 => simplicity_sys::c_jets::jets_wrapper::left_shift_16, + Elements::LeftShift32 => simplicity_sys::c_jets::jets_wrapper::left_shift_32, + Elements::LeftShift64 => simplicity_sys::c_jets::jets_wrapper::left_shift_64, + Elements::LeftShift8 => simplicity_sys::c_jets::jets_wrapper::left_shift_8, + Elements::LeftShiftWith16 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_16, + Elements::LeftShiftWith32 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_32, + Elements::LeftShiftWith64 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_64, + Elements::LeftShiftWith8 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_8, + Elements::Leftmost16_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_1, + Elements::Leftmost16_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_2, + Elements::Leftmost16_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_4, + Elements::Leftmost16_8 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_8, + Elements::Leftmost32_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_1, + Elements::Leftmost32_16 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_16, + Elements::Leftmost32_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_2, + Elements::Leftmost32_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_4, + Elements::Leftmost32_8 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_8, + Elements::Leftmost64_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_1, + Elements::Leftmost64_16 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_16, + Elements::Leftmost64_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_2, + Elements::Leftmost64_32 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_32, + Elements::Leftmost64_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_4, + Elements::Leftmost64_8 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_8, + Elements::Leftmost8_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_8_1, + Elements::Leftmost8_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_8_2, + Elements::Leftmost8_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_8_4, + Elements::LinearCombination1 => { + simplicity_sys::c_jets::jets_wrapper::linear_combination_1 + } + Elements::LinearVerify1 => simplicity_sys::c_jets::jets_wrapper::linear_verify_1, + Elements::LockTime => simplicity_sys::c_jets::jets_wrapper::lock_time, + Elements::Low1 => simplicity_sys::c_jets::jets_wrapper::low_1, + Elements::Low16 => simplicity_sys::c_jets::jets_wrapper::low_16, + Elements::Low32 => simplicity_sys::c_jets::jets_wrapper::low_32, + Elements::Low64 => simplicity_sys::c_jets::jets_wrapper::low_64, + Elements::Low8 => simplicity_sys::c_jets::jets_wrapper::low_8, + Elements::Lt16 => simplicity_sys::c_jets::jets_wrapper::lt_16, + Elements::Lt32 => simplicity_sys::c_jets::jets_wrapper::lt_32, + Elements::Lt64 => simplicity_sys::c_jets::jets_wrapper::lt_64, + Elements::Lt8 => simplicity_sys::c_jets::jets_wrapper::lt_8, + Elements::Maj1 => simplicity_sys::c_jets::jets_wrapper::maj_1, + Elements::Maj16 => simplicity_sys::c_jets::jets_wrapper::maj_16, + Elements::Maj32 => simplicity_sys::c_jets::jets_wrapper::maj_32, + Elements::Maj64 => simplicity_sys::c_jets::jets_wrapper::maj_64, + Elements::Maj8 => simplicity_sys::c_jets::jets_wrapper::maj_8, + Elements::Max16 => simplicity_sys::c_jets::jets_wrapper::max_16, + Elements::Max32 => simplicity_sys::c_jets::jets_wrapper::max_32, + Elements::Max64 => simplicity_sys::c_jets::jets_wrapper::max_64, + Elements::Max8 => simplicity_sys::c_jets::jets_wrapper::max_8, + Elements::Median16 => simplicity_sys::c_jets::jets_wrapper::median_16, + Elements::Median32 => simplicity_sys::c_jets::jets_wrapper::median_32, + Elements::Median64 => simplicity_sys::c_jets::jets_wrapper::median_64, + Elements::Median8 => simplicity_sys::c_jets::jets_wrapper::median_8, + Elements::Min16 => simplicity_sys::c_jets::jets_wrapper::min_16, + Elements::Min32 => simplicity_sys::c_jets::jets_wrapper::min_32, + Elements::Min64 => simplicity_sys::c_jets::jets_wrapper::min_64, + Elements::Min8 => simplicity_sys::c_jets::jets_wrapper::min_8, + Elements::Modulo16 => simplicity_sys::c_jets::jets_wrapper::modulo_16, + Elements::Modulo32 => simplicity_sys::c_jets::jets_wrapper::modulo_32, + Elements::Modulo64 => simplicity_sys::c_jets::jets_wrapper::modulo_64, + Elements::Modulo8 => simplicity_sys::c_jets::jets_wrapper::modulo_8, + Elements::Multiply16 => simplicity_sys::c_jets::jets_wrapper::multiply_16, + Elements::Multiply32 => simplicity_sys::c_jets::jets_wrapper::multiply_32, + Elements::Multiply64 => simplicity_sys::c_jets::jets_wrapper::multiply_64, + Elements::Multiply8 => simplicity_sys::c_jets::jets_wrapper::multiply_8, + Elements::Negate16 => simplicity_sys::c_jets::jets_wrapper::negate_16, + Elements::Negate32 => simplicity_sys::c_jets::jets_wrapper::negate_32, + Elements::Negate64 => simplicity_sys::c_jets::jets_wrapper::negate_64, + Elements::Negate8 => simplicity_sys::c_jets::jets_wrapper::negate_8, + Elements::NewIssuanceContract => { + simplicity_sys::c_jets::jets_wrapper::new_issuance_contract + } + Elements::NonceHash => simplicity_sys::c_jets::jets_wrapper::nonce_hash, + Elements::NumInputs => simplicity_sys::c_jets::jets_wrapper::num_inputs, + Elements::NumOutputs => simplicity_sys::c_jets::jets_wrapper::num_outputs, + Elements::One16 => simplicity_sys::c_jets::jets_wrapper::one_16, + Elements::One32 => simplicity_sys::c_jets::jets_wrapper::one_32, + Elements::One64 => simplicity_sys::c_jets::jets_wrapper::one_64, + Elements::One8 => simplicity_sys::c_jets::jets_wrapper::one_8, + Elements::Or1 => simplicity_sys::c_jets::jets_wrapper::or_1, + Elements::Or16 => simplicity_sys::c_jets::jets_wrapper::or_16, + Elements::Or32 => simplicity_sys::c_jets::jets_wrapper::or_32, + Elements::Or64 => simplicity_sys::c_jets::jets_wrapper::or_64, + Elements::Or8 => simplicity_sys::c_jets::jets_wrapper::or_8, + Elements::OutpointHash => simplicity_sys::c_jets::jets_wrapper::outpoint_hash, + Elements::OutputAmount => simplicity_sys::c_jets::jets_wrapper::output_amount, + Elements::OutputAmountsHash => { + simplicity_sys::c_jets::jets_wrapper::output_amounts_hash + } + Elements::OutputAsset => simplicity_sys::c_jets::jets_wrapper::output_asset, + Elements::OutputHash => simplicity_sys::c_jets::jets_wrapper::output_hash, + Elements::OutputIsFee => simplicity_sys::c_jets::jets_wrapper::output_is_fee, + Elements::OutputNonce => simplicity_sys::c_jets::jets_wrapper::output_nonce, + Elements::OutputNoncesHash => simplicity_sys::c_jets::jets_wrapper::output_nonces_hash, + Elements::OutputNullDatum => simplicity_sys::c_jets::jets_wrapper::output_null_datum, + Elements::OutputRangeProof => simplicity_sys::c_jets::jets_wrapper::output_range_proof, + Elements::OutputRangeProofsHash => { + simplicity_sys::c_jets::jets_wrapper::output_range_proofs_hash + } + Elements::OutputScriptHash => simplicity_sys::c_jets::jets_wrapper::output_script_hash, + Elements::OutputScriptsHash => { + simplicity_sys::c_jets::jets_wrapper::output_scripts_hash + } + Elements::OutputSurjectionProof => { + simplicity_sys::c_jets::jets_wrapper::output_surjection_proof + } + Elements::OutputSurjectionProofsHash => { + simplicity_sys::c_jets::jets_wrapper::output_surjection_proofs_hash + } + Elements::OutputsHash => simplicity_sys::c_jets::jets_wrapper::outputs_hash, + Elements::ParseLock => simplicity_sys::c_jets::jets_wrapper::parse_lock, + Elements::ParseSequence => simplicity_sys::c_jets::jets_wrapper::parse_sequence, + Elements::PointVerify1 => simplicity_sys::c_jets::jets_wrapper::point_verify_1, + Elements::ReissuanceBlinding => { + simplicity_sys::c_jets::jets_wrapper::reissuance_blinding + } + Elements::ReissuanceEntropy => simplicity_sys::c_jets::jets_wrapper::reissuance_entropy, + Elements::RightExtend16_32 => simplicity_sys::c_jets::jets_wrapper::right_extend_16_32, + Elements::RightExtend16_64 => simplicity_sys::c_jets::jets_wrapper::right_extend_16_64, + Elements::RightExtend32_64 => simplicity_sys::c_jets::jets_wrapper::right_extend_32_64, + Elements::RightExtend8_16 => simplicity_sys::c_jets::jets_wrapper::right_extend_8_16, + Elements::RightExtend8_32 => simplicity_sys::c_jets::jets_wrapper::right_extend_8_32, + Elements::RightExtend8_64 => simplicity_sys::c_jets::jets_wrapper::right_extend_8_64, + Elements::RightPadHigh16_32 => { + simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_32 + } + Elements::RightPadHigh16_64 => { + simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_64 + } + Elements::RightPadHigh1_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_16, + Elements::RightPadHigh1_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_32, + Elements::RightPadHigh1_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_64, + Elements::RightPadHigh1_8 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_8, + Elements::RightPadHigh32_64 => { + simplicity_sys::c_jets::jets_wrapper::right_pad_high_32_64 + } + Elements::RightPadHigh8_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_16, + Elements::RightPadHigh8_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_32, + Elements::RightPadHigh8_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_64, + Elements::RightPadLow16_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_32, + Elements::RightPadLow16_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_64, + Elements::RightPadLow1_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_16, + Elements::RightPadLow1_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_32, + Elements::RightPadLow1_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_64, + Elements::RightPadLow1_8 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_8, + Elements::RightPadLow32_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_32_64, + Elements::RightPadLow8_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_16, + Elements::RightPadLow8_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_32, + Elements::RightPadLow8_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_64, + Elements::RightRotate16 => simplicity_sys::c_jets::jets_wrapper::right_rotate_16, + Elements::RightRotate32 => simplicity_sys::c_jets::jets_wrapper::right_rotate_32, + Elements::RightRotate64 => simplicity_sys::c_jets::jets_wrapper::right_rotate_64, + Elements::RightRotate8 => simplicity_sys::c_jets::jets_wrapper::right_rotate_8, + Elements::RightShift16 => simplicity_sys::c_jets::jets_wrapper::right_shift_16, + Elements::RightShift32 => simplicity_sys::c_jets::jets_wrapper::right_shift_32, + Elements::RightShift64 => simplicity_sys::c_jets::jets_wrapper::right_shift_64, + Elements::RightShift8 => simplicity_sys::c_jets::jets_wrapper::right_shift_8, + Elements::RightShiftWith16 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_16, + Elements::RightShiftWith32 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_32, + Elements::RightShiftWith64 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_64, + Elements::RightShiftWith8 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_8, + Elements::Rightmost16_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_1, + Elements::Rightmost16_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_2, + Elements::Rightmost16_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_4, + Elements::Rightmost16_8 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_8, + Elements::Rightmost32_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_1, + Elements::Rightmost32_16 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_16, + Elements::Rightmost32_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_2, + Elements::Rightmost32_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_4, + Elements::Rightmost32_8 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_8, + Elements::Rightmost64_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_1, + Elements::Rightmost64_16 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_16, + Elements::Rightmost64_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_2, + Elements::Rightmost64_32 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_32, + Elements::Rightmost64_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_4, + Elements::Rightmost64_8 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_8, + Elements::Rightmost8_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_8_1, + Elements::Rightmost8_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_8_2, + Elements::Rightmost8_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_8_4, + Elements::ScalarAdd => simplicity_sys::c_jets::jets_wrapper::scalar_add, + Elements::ScalarInvert => simplicity_sys::c_jets::jets_wrapper::scalar_invert, + Elements::ScalarIsZero => simplicity_sys::c_jets::jets_wrapper::scalar_is_zero, + Elements::ScalarMultiply => simplicity_sys::c_jets::jets_wrapper::scalar_multiply, + Elements::ScalarMultiplyLambda => { + simplicity_sys::c_jets::jets_wrapper::scalar_multiply_lambda + } + Elements::ScalarNegate => simplicity_sys::c_jets::jets_wrapper::scalar_negate, + Elements::ScalarNormalize => simplicity_sys::c_jets::jets_wrapper::scalar_normalize, + Elements::ScalarSquare => simplicity_sys::c_jets::jets_wrapper::scalar_square, + Elements::Scale => simplicity_sys::c_jets::jets_wrapper::scale, + Elements::ScriptCMR => simplicity_sys::c_jets::jets_wrapper::script_cmr, + Elements::Sha256Block => simplicity_sys::c_jets::jets_wrapper::sha_256_block, + Elements::Sha256Ctx8Add1 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_1, + Elements::Sha256Ctx8Add128 => { + simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_128 + } + Elements::Sha256Ctx8Add16 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_16, + Elements::Sha256Ctx8Add2 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_2, + Elements::Sha256Ctx8Add256 => { + simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_256 + } + Elements::Sha256Ctx8Add32 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_32, + Elements::Sha256Ctx8Add4 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_4, + Elements::Sha256Ctx8Add512 => { + simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_512 + } + Elements::Sha256Ctx8Add64 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_64, + Elements::Sha256Ctx8Add8 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_8, + Elements::Sha256Ctx8AddBuffer511 => { + simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_buffer_511 + } + Elements::Sha256Ctx8Finalize => { + simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_finalize + } + Elements::Sha256Ctx8Init => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_init, + Elements::Sha256Iv => simplicity_sys::c_jets::jets_wrapper::sha_256_iv, + Elements::SigAllHash => simplicity_sys::c_jets::jets_wrapper::sig_all_hash, + Elements::Some1 => simplicity_sys::c_jets::jets_wrapper::some_1, + Elements::Some16 => simplicity_sys::c_jets::jets_wrapper::some_16, + Elements::Some32 => simplicity_sys::c_jets::jets_wrapper::some_32, + Elements::Some64 => simplicity_sys::c_jets::jets_wrapper::some_64, + Elements::Some8 => simplicity_sys::c_jets::jets_wrapper::some_8, + Elements::Subtract16 => simplicity_sys::c_jets::jets_wrapper::subtract_16, + Elements::Subtract32 => simplicity_sys::c_jets::jets_wrapper::subtract_32, + Elements::Subtract64 => simplicity_sys::c_jets::jets_wrapper::subtract_64, + Elements::Subtract8 => simplicity_sys::c_jets::jets_wrapper::subtract_8, + Elements::Swu => simplicity_sys::c_jets::jets_wrapper::swu, + Elements::TapEnvHash => simplicity_sys::c_jets::jets_wrapper::tap_env_hash, + Elements::TapdataInit => simplicity_sys::c_jets::jets_wrapper::tapdata_init, + Elements::TapleafHash => simplicity_sys::c_jets::jets_wrapper::tapleaf_hash, + Elements::TapleafVersion => simplicity_sys::c_jets::jets_wrapper::tapleaf_version, + Elements::Tappath => simplicity_sys::c_jets::jets_wrapper::tappath, + Elements::TappathHash => simplicity_sys::c_jets::jets_wrapper::tappath_hash, + Elements::TotalFee => simplicity_sys::c_jets::jets_wrapper::total_fee, + Elements::TransactionId => simplicity_sys::c_jets::jets_wrapper::transaction_id, + Elements::TxHash => simplicity_sys::c_jets::jets_wrapper::tx_hash, + Elements::TxIsFinal => simplicity_sys::c_jets::jets_wrapper::tx_is_final, + Elements::TxLockDistance => simplicity_sys::c_jets::jets_wrapper::tx_lock_distance, + Elements::TxLockDuration => simplicity_sys::c_jets::jets_wrapper::tx_lock_duration, + Elements::TxLockHeight => simplicity_sys::c_jets::jets_wrapper::tx_lock_height, + Elements::TxLockTime => simplicity_sys::c_jets::jets_wrapper::tx_lock_time, + Elements::Verify => simplicity_sys::c_jets::jets_wrapper::verify, + Elements::Version => simplicity_sys::c_jets::jets_wrapper::version, + Elements::Xor1 => simplicity_sys::c_jets::jets_wrapper::xor_1, + Elements::Xor16 => simplicity_sys::c_jets::jets_wrapper::xor_16, + Elements::Xor32 => simplicity_sys::c_jets::jets_wrapper::xor_32, + Elements::Xor64 => simplicity_sys::c_jets::jets_wrapper::xor_64, + Elements::Xor8 => simplicity_sys::c_jets::jets_wrapper::xor_8, + Elements::XorXor1 => simplicity_sys::c_jets::jets_wrapper::xor_xor_1, + Elements::XorXor16 => simplicity_sys::c_jets::jets_wrapper::xor_xor_16, + Elements::XorXor32 => simplicity_sys::c_jets::jets_wrapper::xor_xor_32, + Elements::XorXor64 => simplicity_sys::c_jets::jets_wrapper::xor_xor_64, + Elements::XorXor8 => simplicity_sys::c_jets::jets_wrapper::xor_xor_8, + } + } +} diff --git a/src/jet/mod.rs b/src/jet/mod.rs index 085b0d12..586b7b73 100644 --- a/src/jet/mod.rs +++ b/src/jet/mod.rs @@ -19,11 +19,13 @@ pub mod elements; mod init; pub mod type_name; +#[cfg(feature = "bitcoin")] +pub use crate::jet::bitcoin::BitcoinEnv; #[cfg(feature = "bitcoin")] pub use init::bitcoin::Bitcoin; -pub use init::core::Core; +pub use init::core::{Core, CoreEnv}; #[cfg(feature = "elements")] -pub use init::elements::Elements; +pub use init::elements::{Elements, ElementsTxEnv}; use simplicity_sys::c_jets::frame_ffi::CFrameItem; use crate::analysis::Cost; @@ -48,6 +50,23 @@ impl std::fmt::Display for JetFailed { impl std::error::Error for JetFailed {} +/// An environment for jets to read. +pub trait JetEnvironment { + /// The type of jet that this environment supports. + type Jet: Jet; + + /// CJetEnvironment to interact with C FFI. + type CJetEnvironment; + + /// Obtains a C FFI compatible environment for the jet. + fn c_jet_env(&self) -> &Self::CJetEnvironment; + + /// Obtain the FFI C pointer for the jet. + fn c_jet_ptr( + jet: &Self::Jet, + ) -> fn(&mut CFrameItem, CFrameItem, &Self::CJetEnvironment) -> bool; +} + /// Family of jets that share an encoding scheme and execution environment. /// /// Jets are single nodes that read an input, @@ -59,11 +78,6 @@ impl std::error::Error for JetFailed {} pub trait Jet: Copy + Eq + Ord + Hash + std::fmt::Debug + std::fmt::Display + std::str::FromStr + 'static { - /// Environment for jet to read from - type Environment; - /// CJetEnvironment to interact with C FFI. - type CJetEnvironment; - /// Return the CMR of the jet. fn cmr(&self) -> Cmr; @@ -79,12 +93,6 @@ pub trait Jet: /// Decode a jet from bits. fn decode>(bits: &mut BitIter) -> Result; - /// Obtains a C FFI compatible environment for the jet. - fn c_jet_env(env: &Self::Environment) -> &Self::CJetEnvironment; - - /// Obtain the FFI C pointer for the jet. - fn c_jet_ptr(&self) -> &dyn Fn(&mut CFrameItem, CFrameItem, &Self::CJetEnvironment) -> bool; - /// Return the cost of the jet. fn cost(&self) -> Cost; } diff --git a/src/node/construct.rs b/src/node/construct.rs index eda9b366..4e7668ef 100644 --- a/src/node/construct.rs +++ b/src/node/construct.rs @@ -1,7 +1,7 @@ // SPDX-License-Identifier: CC0-1.0 use crate::dag::{InternalSharing, PostOrderIterItem}; -use crate::jet::Jet; +use crate::jet::{Jet, JetEnvironment}; use crate::types::{self, arrow::Arrow}; use crate::{encode, BitIter, BitWriter, Cmr, FailEntropy, FinalizeError, RedeemNode, Value, Word}; @@ -212,10 +212,10 @@ impl<'brand, J: Jet> ConstructNode<'brand, J> { /// ## See /// /// [`RedeemNode::prune`] - pub fn finalize_pruned( + pub fn finalize_pruned>( &self, - env: &J::Environment, - ) -> Result>, FinalizeError> { + env: &JE, + ) -> Result>, FinalizeError> { let unpruned = self.finalize_unpruned()?; unpruned.prune(env).map_err(FinalizeError::Execution) } diff --git a/src/node/redeem.rs b/src/node/redeem.rs index aa0bf45e..d961b1af 100644 --- a/src/node/redeem.rs +++ b/src/node/redeem.rs @@ -3,7 +3,7 @@ use crate::analysis::NodeBounds; use crate::bit_machine::{ExecutionError, PruneTracker, SetTracker}; use crate::dag::{DagLike, InternalSharing, MaxSharing, PostOrderIterItem}; -use crate::jet::Jet; +use crate::jet::{Jet, JetEnvironment}; use crate::types::{self, arrow::FinalArrow}; use crate::{encode, BitMachine}; use crate::{Amr, BitIter, BitWriter, Cmr, DecodeError, Ihr, Imr, Value}; @@ -289,7 +289,10 @@ impl RedeemNode { /// Pruning fails if the original, unpruned program fails to run on the Bit Machine (step 1). /// In this case, the witness data needs to be revised. /// The other pruning steps (2 & 3) never fail. - pub fn prune(&self, env: &J::Environment) -> Result>, ExecutionError> { + pub fn prune>( + &self, + env: &JE, + ) -> Result>, ExecutionError> { self.prune_with_tracker(env, &mut SetTracker::default()) } @@ -298,9 +301,9 @@ impl RedeemNode { /// /// See [`crate::bit_machine::StderrTracker`] as an example which outputs the IHR of /// each case combinator that we prune a child of. - pub fn prune_with_tracker>( + pub fn prune_with_tracker, T: PruneTracker>( &self, - env: &J::Environment, + env: &JE, tracker: &mut T, ) -> Result>, ExecutionError> { struct Pruner<'brand, 't, J, T> { @@ -963,15 +966,15 @@ mod tests { } #[cfg(feature = "elements")] - fn assert_correct_pruning( + fn assert_correct_pruning( unpruned_prog: &str, unpruned_wit: &HashMap, Value>, expected_pruned_prog: &str, expected_pruned_wit: &HashMap, Value>, - env: &J::Environment, + env: &JE, ) { let unpruned_program = types::Context::with_context(|ctx| { - Forest::::parse(unpruned_prog) + Forest::::parse(unpruned_prog) .expect("unpruned program should parse") .to_witness_node(&ctx, unpruned_wit) .expect("unpruned program should have main") @@ -979,7 +982,7 @@ mod tests { .expect("unpruned program should finalize") }); let expected_unpruned_program = types::Context::with_context(|ctx| { - Forest::::parse(expected_pruned_prog) + Forest::::parse(expected_pruned_prog) .expect("expected pruned program should parse") .to_witness_node(&ctx, expected_pruned_wit) .expect("expected pruned program should have main") @@ -1016,6 +1019,8 @@ mod tests { #[test] #[cfg(feature = "elements")] fn prune() { + use crate::jet::ElementsTxEnv; + let env = crate::jet::elements::ElementsEnv::dummy(); /* @@ -1047,7 +1052,7 @@ main := comp input comp process jet_verify : 1 -> 1"#; Value::product(Value::u64(0), Value::unit()), ), ]); - assert_correct_pruning::( + assert_correct_pruning::( unpruned_prog, &unpruned_wit, pruned_prog, @@ -1075,7 +1080,7 @@ main := comp input comp process jet_verify : 1 -> 1"#; Value::product(Value::unit(), Value::u64(0)), ), ]); - assert_correct_pruning::( + assert_correct_pruning::( unpruned_prog, &unpruned_wit, pruned_prog, @@ -1100,7 +1105,7 @@ process := assertl (take jet_is_zero_64) #{take jet_is_zero_64} : (2^64 + 1) * 1 main := comp input comp process jet_verify : 1 -> 1"#; let pruned_wit = HashMap::from([(Arc::from("wit1"), Value::left(Value::u64(0), Final::unit()))]); - assert_correct_pruning::( + assert_correct_pruning::( prune_sum, &unpruned_wit, pruned_prog, @@ -1121,7 +1126,7 @@ main := comp input comp process jet_verify : 1 -> 1"#; Arc::from("wit1"), Value::right(Final::unit(), Value::u64(0)), )]); - assert_correct_pruning::( + assert_correct_pruning::( prune_sum, &unpruned_wit, pruned_prog,