1use crate::{ArrayType, IntegerType, Type};
18
19use leo_span::{Span, Symbol, sym};
20
21use snarkvm::{
22 prelude::LiteralType,
23 synthesizer::program::{CommitVariant, DeserializeVariant, ECDSAVerifyVariant, HashVariant, SerializeVariant},
24};
25
26#[derive(Clone, Debug, PartialEq, Eq)]
28pub enum Intrinsic {
29 ChaChaRand(LiteralType),
31 Commit(CommitVariant, LiteralType),
33 ECDSAVerify(ECDSAVerifyVariant),
35 Hash(HashVariant, Type),
37
38 Get,
40 Set,
41
42 MappingGetOrUse,
43 MappingRemove,
44 MappingContains,
45
46 OptionalUnwrap,
47 OptionalUnwrapOr,
48
49 VectorPush,
50 VectorLen,
51 VectorClear,
52 VectorPop,
53 VectorSwapRemove,
54
55 GroupToXCoordinate,
56 GroupToYCoordinate,
57 GroupGen,
58
59 SignatureVerify,
61
62 FutureAwait,
63
64 ProgramChecksum,
65 ProgramEdition,
66 ProgramOwner,
67
68 Serialize(SerializeVariant),
69
70 Deserialize(DeserializeVariant, Type),
72
73 SelfAddress,
74 SelfCaller,
75 SelfChecksum,
76 SelfEdition,
77 SelfId,
78 SelfProgramOwner,
79 SelfSigner,
80 BlockHeight,
81 BlockTimestamp,
82 NetworkId,
83
84 CheatCodePrintMapping,
85 CheatCodeSetBlockHeight,
86 CheatCodeSetBlockTimestamp,
87 CheatCodeSetSigner,
88}
89
90impl Intrinsic {
91 #[rustfmt::skip]
94 pub fn from_symbol(name: Symbol, type_parameters: &[(Type, Span)]) -> Option<Self> {
95 Some(match name {
96 s if s == Symbol::intern("__unresolved_get") => Self::Get,
97 s if s == Symbol::intern("__unresolved_set") => Self::Set,
98 sym::_self_address => Self::SelfAddress,
99 sym::_self_caller => Self::SelfCaller,
100 sym::_self_checksum => Self::SelfChecksum,
101 sym::_self_edition => Self::SelfEdition,
102 sym::_self_id => Self::SelfId,
103 sym::_self_program_owner => Self::SelfProgramOwner,
104 sym::_self_signer => Self::SelfSigner,
105 sym::_block_height => Self::BlockHeight,
106 sym::_block_timestamp => Self::BlockTimestamp,
107 sym::_network_id => Self::NetworkId,
108 sym::_deserialize_from_bits => Self::Deserialize(DeserializeVariant::FromBits, type_parameters[0].0.clone()),
109 sym::_deserialize_from_bits_raw => Self::Deserialize(DeserializeVariant::FromBitsRaw, type_parameters[0].0.clone()),
110 sym::_group_gen => Self::GroupGen,
111 sym::_chacha_rand_address => Self::ChaChaRand(LiteralType::Address),
112 sym::_chacha_rand_bool => Self::ChaChaRand(LiteralType::Boolean),
113 sym::_chacha_rand_field => Self::ChaChaRand(LiteralType::Field),
114 sym::_chacha_rand_group => Self::ChaChaRand(LiteralType::Group),
115 sym::_chacha_rand_i8 => Self::ChaChaRand(LiteralType::I8),
116 sym::_chacha_rand_i16 => Self::ChaChaRand(LiteralType::I16),
117 sym::_chacha_rand_i32 => Self::ChaChaRand(LiteralType::I32),
118 sym::_chacha_rand_i64 => Self::ChaChaRand(LiteralType::I64),
119 sym::_chacha_rand_i128 => Self::ChaChaRand(LiteralType::I128),
120 sym::_chacha_rand_u8 => Self::ChaChaRand(LiteralType::U8),
121 sym::_chacha_rand_u16 => Self::ChaChaRand(LiteralType::U16),
122 sym::_chacha_rand_u32 => Self::ChaChaRand(LiteralType::U32),
123 sym::_chacha_rand_u64 => Self::ChaChaRand(LiteralType::U64),
124 sym::_chacha_rand_u128 => Self::ChaChaRand(LiteralType::U128),
125 sym::_chacha_rand_scalar => Self::ChaChaRand(LiteralType::Scalar),
126 sym::_bhp256_commit_to_address => Self::Commit(CommitVariant::CommitBHP256, LiteralType::Address),
127 sym::_bhp256_commit_to_field => Self::Commit(CommitVariant::CommitBHP256, LiteralType::Field),
128 sym::_bhp256_commit_to_group => Self::Commit(CommitVariant::CommitBHP256, LiteralType::Group),
129 sym::_bhp512_commit_to_address => Self::Commit(CommitVariant::CommitBHP512, LiteralType::Address),
130 sym::_bhp512_commit_to_field => Self::Commit(CommitVariant::CommitBHP512, LiteralType::Field),
131 sym::_bhp512_commit_to_group => Self::Commit(CommitVariant::CommitBHP512, LiteralType::Group),
132 sym::_bhp768_commit_to_address => Self::Commit(CommitVariant::CommitBHP768, LiteralType::Address),
133 sym::_bhp768_commit_to_field => Self::Commit(CommitVariant::CommitBHP768, LiteralType::Field),
134 sym::_bhp768_commit_to_group => Self::Commit(CommitVariant::CommitBHP768, LiteralType::Group),
135 sym::_bhp1024_commit_to_address => Self::Commit(CommitVariant::CommitBHP1024, LiteralType::Address),
136 sym::_bhp1024_commit_to_field => Self::Commit(CommitVariant::CommitBHP1024, LiteralType::Field),
137 sym::_bhp1024_commit_to_group => Self::Commit(CommitVariant::CommitBHP1024, LiteralType::Group),
138 sym::_pedersen64_commit_to_address => Self::Commit(CommitVariant::CommitPED64, LiteralType::Address),
139 sym::_pedersen64_commit_to_field => Self::Commit(CommitVariant::CommitPED64, LiteralType::Field),
140 sym::_pedersen64_commit_to_group => Self::Commit(CommitVariant::CommitPED64, LiteralType::Group),
141 sym::_pedersen128_commit_to_address => Self::Commit(CommitVariant::CommitPED128, LiteralType::Address),
142 sym::_pedersen128_commit_to_field => Self::Commit(CommitVariant::CommitPED128, LiteralType::Field),
143 sym::_pedersen128_commit_to_group => Self::Commit(CommitVariant::CommitPED128, LiteralType::Group),
144 sym::_bhp256_hash_to_address => Self::Hash(HashVariant::HashBHP256, Type::Address),
145 sym::_bhp256_hash_to_field => Self::Hash(HashVariant::HashBHP256, Type::Field),
146 sym::_bhp256_hash_to_group => Self::Hash(HashVariant::HashBHP256, Type::Group),
147 sym::_bhp256_hash_to_i8 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::I8)),
148 sym::_bhp256_hash_to_i16 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::I16)),
149 sym::_bhp256_hash_to_i32 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::I32)),
150 sym::_bhp256_hash_to_i64 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::I64)),
151 sym::_bhp256_hash_to_i128 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::I128)),
152 sym::_bhp256_hash_to_u8 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::U8)),
153 sym::_bhp256_hash_to_u16 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::U16)),
154 sym::_bhp256_hash_to_u32 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::U32)),
155 sym::_bhp256_hash_to_u64 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::U64)),
156 sym::_bhp256_hash_to_u128 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::U128)),
157 sym::_bhp256_hash_to_scalar => Self::Hash(HashVariant::HashBHP256, Type::Scalar),
158 sym::_bhp256_hash_to_address_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Address),
159 sym::_bhp256_hash_to_field_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Field),
160 sym::_bhp256_hash_to_group_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Group),
161 sym::_bhp256_hash_to_i8_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::I8)),
162 sym::_bhp256_hash_to_i16_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::I16)),
163 sym::_bhp256_hash_to_i32_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::I32)),
164 sym::_bhp256_hash_to_i64_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::I64)),
165 sym::_bhp256_hash_to_i128_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::I128)),
166 sym::_bhp256_hash_to_u8_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::U8)),
167 sym::_bhp256_hash_to_u16_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::U16)),
168 sym::_bhp256_hash_to_u32_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::U32)),
169 sym::_bhp256_hash_to_u64_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::U64)),
170 sym::_bhp256_hash_to_u128_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::U128)),
171 sym::_bhp256_hash_to_scalar_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Scalar),
172
173 sym::_bhp512_hash_to_address => Self::Hash(HashVariant::HashBHP512, Type::Address),
174 sym::_bhp512_hash_to_field => Self::Hash(HashVariant::HashBHP512, Type::Field),
175 sym::_bhp512_hash_to_group => Self::Hash(HashVariant::HashBHP512, Type::Group),
176 sym::_bhp512_hash_to_i8 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::I8)),
177 sym::_bhp512_hash_to_i16 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::I16)),
178 sym::_bhp512_hash_to_i32 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::I32)),
179 sym::_bhp512_hash_to_i64 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::I64)),
180 sym::_bhp512_hash_to_i128 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::I128)),
181 sym::_bhp512_hash_to_u8 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::U8)),
182 sym::_bhp512_hash_to_u16 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::U16)),
183 sym::_bhp512_hash_to_u32 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::U32)),
184 sym::_bhp512_hash_to_u64 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::U64)),
185 sym::_bhp512_hash_to_u128 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::U128)),
186 sym::_bhp512_hash_to_scalar => Self::Hash(HashVariant::HashBHP512, Type::Scalar),
187 sym::_bhp512_hash_to_address_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Address),
188 sym::_bhp512_hash_to_field_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Field),
189 sym::_bhp512_hash_to_group_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Group),
190 sym::_bhp512_hash_to_i8_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::I8)),
191 sym::_bhp512_hash_to_i16_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::I16)),
192 sym::_bhp512_hash_to_i32_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::I32)),
193 sym::_bhp512_hash_to_i64_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::I64)),
194 sym::_bhp512_hash_to_i128_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::I128)),
195 sym::_bhp512_hash_to_u8_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::U8)),
196 sym::_bhp512_hash_to_u16_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::U16)),
197 sym::_bhp512_hash_to_u32_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::U32)),
198 sym::_bhp512_hash_to_u64_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::U64)),
199 sym::_bhp512_hash_to_u128_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::U128)),
200 sym::_bhp512_hash_to_scalar_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Scalar),
201
202 sym::_bhp768_hash_to_address => Self::Hash(HashVariant::HashBHP768, Type::Address),
203 sym::_bhp768_hash_to_field => Self::Hash(HashVariant::HashBHP768, Type::Field),
204 sym::_bhp768_hash_to_group => Self::Hash(HashVariant::HashBHP768, Type::Group),
205 sym::_bhp768_hash_to_i8 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::I8)),
206 sym::_bhp768_hash_to_i16 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::I16)),
207 sym::_bhp768_hash_to_i32 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::I32)),
208 sym::_bhp768_hash_to_i64 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::I64)),
209 sym::_bhp768_hash_to_i128 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::I128)),
210 sym::_bhp768_hash_to_u8 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::U8)),
211 sym::_bhp768_hash_to_u16 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::U16)),
212 sym::_bhp768_hash_to_u32 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::U32)),
213 sym::_bhp768_hash_to_u64 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::U64)),
214 sym::_bhp768_hash_to_u128 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::U128)),
215 sym::_bhp768_hash_to_scalar => Self::Hash(HashVariant::HashBHP768, Type::Scalar),
216 sym::_bhp768_hash_to_address_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Address),
217 sym::_bhp768_hash_to_field_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Field),
218 sym::_bhp768_hash_to_group_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Group),
219 sym::_bhp768_hash_to_i8_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::I8)),
220 sym::_bhp768_hash_to_i16_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::I16)),
221 sym::_bhp768_hash_to_i32_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::I32)),
222 sym::_bhp768_hash_to_i64_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::I64)),
223 sym::_bhp768_hash_to_i128_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::I128)),
224 sym::_bhp768_hash_to_u8_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::U8)),
225 sym::_bhp768_hash_to_u16_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::U16)),
226 sym::_bhp768_hash_to_u32_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::U32)),
227 sym::_bhp768_hash_to_u64_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::U64)),
228 sym::_bhp768_hash_to_u128_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::U128)),
229 sym::_bhp768_hash_to_scalar_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Scalar),
230
231 sym::_bhp1024_hash_to_address => Self::Hash(HashVariant::HashBHP1024, Type::Address),
232 sym::_bhp1024_hash_to_field => Self::Hash(HashVariant::HashBHP1024, Type::Field),
233 sym::_bhp1024_hash_to_group => Self::Hash(HashVariant::HashBHP1024, Type::Group),
234 sym::_bhp1024_hash_to_i8 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::I8)),
235 sym::_bhp1024_hash_to_i16 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::I16)),
236 sym::_bhp1024_hash_to_i32 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::I32)),
237 sym::_bhp1024_hash_to_i64 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::I64)),
238 sym::_bhp1024_hash_to_i128 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::I128)),
239 sym::_bhp1024_hash_to_u8 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::U8)),
240 sym::_bhp1024_hash_to_u16 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::U16)),
241 sym::_bhp1024_hash_to_u32 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::U32)),
242 sym::_bhp1024_hash_to_u64 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::U64)),
243 sym::_bhp1024_hash_to_u128 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::U128)),
244 sym::_bhp1024_hash_to_scalar => Self::Hash(HashVariant::HashBHP1024, Type::Scalar),
245 sym::_bhp1024_hash_to_address_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Address),
246 sym::_bhp1024_hash_to_field_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Field),
247 sym::_bhp1024_hash_to_group_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Group),
248 sym::_bhp1024_hash_to_i8_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::I8)),
249 sym::_bhp1024_hash_to_i16_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::I16)),
250 sym::_bhp1024_hash_to_i32_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::I32)),
251 sym::_bhp1024_hash_to_i64_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::I64)),
252 sym::_bhp1024_hash_to_i128_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::I128)),
253 sym::_bhp1024_hash_to_u8_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::U8)),
254 sym::_bhp1024_hash_to_u16_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::U16)),
255 sym::_bhp1024_hash_to_u32_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::U32)),
256 sym::_bhp1024_hash_to_u64_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::U64)),
257 sym::_bhp1024_hash_to_u128_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::U128)),
258 sym::_bhp1024_hash_to_scalar_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Scalar),
259
260 sym::_keccak256_hash_to_address => Self::Hash(HashVariant::HashKeccak256, Type::Address),
261 sym::_keccak256_hash_to_field => Self::Hash(HashVariant::HashKeccak256, Type::Field),
262 sym::_keccak256_hash_to_group => Self::Hash(HashVariant::HashKeccak256, Type::Group),
263 sym::_keccak256_hash_to_i8 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::I8)),
264 sym::_keccak256_hash_to_i16 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::I16)),
265 sym::_keccak256_hash_to_i32 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::I32)),
266 sym::_keccak256_hash_to_i64 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::I64)),
267 sym::_keccak256_hash_to_i128 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::I128)),
268 sym::_keccak256_hash_to_u8 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::U8)),
269 sym::_keccak256_hash_to_u16 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::U16)),
270 sym::_keccak256_hash_to_u32 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::U32)),
271 sym::_keccak256_hash_to_u64 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::U64)),
272 sym::_keccak256_hash_to_u128 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::U128)),
273 sym::_keccak256_hash_to_scalar => Self::Hash(HashVariant::HashKeccak256, Type::Scalar),
274 sym::_keccak256_hash_to_address_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Address),
275 sym::_keccak256_hash_to_field_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Field),
276 sym::_keccak256_hash_to_group_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Group),
277 sym::_keccak256_hash_to_i8_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::I8)),
278 sym::_keccak256_hash_to_i16_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::I16)),
279 sym::_keccak256_hash_to_i32_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::I32)),
280 sym::_keccak256_hash_to_i64_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::I64)),
281 sym::_keccak256_hash_to_i128_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::I128)),
282 sym::_keccak256_hash_to_u8_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::U8)),
283 sym::_keccak256_hash_to_u16_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::U16)),
284 sym::_keccak256_hash_to_u32_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::U32)),
285 sym::_keccak256_hash_to_u64_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::U64)),
286 sym::_keccak256_hash_to_u128_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::U128)),
287 sym::_keccak256_hash_to_scalar_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Scalar),
288 sym::_keccak256_hash_to_bits => Self::Hash(HashVariant::HashKeccak256Native, Type::Array(ArrayType::bit_array(256))),
289 sym::_keccak256_hash_to_bits_raw => Self::Hash(HashVariant::HashKeccak256NativeRaw, Type::Array(ArrayType::bit_array(256))),
290
291 sym::_keccak384_hash_to_address => Self::Hash(HashVariant::HashKeccak384, Type::Address),
292 sym::_keccak384_hash_to_field => Self::Hash(HashVariant::HashKeccak384, Type::Field),
293 sym::_keccak384_hash_to_group => Self::Hash(HashVariant::HashKeccak384, Type::Group),
294 sym::_keccak384_hash_to_i8 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::I8)),
295 sym::_keccak384_hash_to_i16 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::I16)),
296 sym::_keccak384_hash_to_i32 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::I32)),
297 sym::_keccak384_hash_to_i64 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::I64)),
298 sym::_keccak384_hash_to_i128 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::I128)),
299 sym::_keccak384_hash_to_u8 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::U8)),
300 sym::_keccak384_hash_to_u16 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::U16)),
301 sym::_keccak384_hash_to_u32 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::U32)),
302 sym::_keccak384_hash_to_u64 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::U64)),
303 sym::_keccak384_hash_to_u128 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::U128)),
304 sym::_keccak384_hash_to_scalar => Self::Hash(HashVariant::HashKeccak384, Type::Scalar),
305 sym::_keccak384_hash_to_address_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Address),
306 sym::_keccak384_hash_to_field_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Field),
307 sym::_keccak384_hash_to_group_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Group),
308 sym::_keccak384_hash_to_i8_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::I8)),
309 sym::_keccak384_hash_to_i16_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::I16)),
310 sym::_keccak384_hash_to_i32_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::I32)),
311 sym::_keccak384_hash_to_i64_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::I64)),
312 sym::_keccak384_hash_to_i128_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::I128)),
313 sym::_keccak384_hash_to_u8_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::U8)),
314 sym::_keccak384_hash_to_u16_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::U16)),
315 sym::_keccak384_hash_to_u32_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::U32)),
316 sym::_keccak384_hash_to_u64_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::U64)),
317 sym::_keccak384_hash_to_u128_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::U128)),
318 sym::_keccak384_hash_to_scalar_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Scalar),
319 sym::_keccak384_hash_to_bits => Self::Hash(HashVariant::HashKeccak384Native, Type::Array(ArrayType::bit_array(384))),
320 sym::_keccak384_hash_to_bits_raw => Self::Hash(HashVariant::HashKeccak384NativeRaw, Type::Array(ArrayType::bit_array(384))),
321
322 sym::_keccak512_hash_to_address => Self::Hash(HashVariant::HashKeccak512, Type::Address),
323 sym::_keccak512_hash_to_field => Self::Hash(HashVariant::HashKeccak512, Type::Field),
324 sym::_keccak512_hash_to_group => Self::Hash(HashVariant::HashKeccak512, Type::Group),
325 sym::_keccak512_hash_to_i8 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::I8)),
326 sym::_keccak512_hash_to_i16 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::I16)),
327 sym::_keccak512_hash_to_i32 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::I32)),
328 sym::_keccak512_hash_to_i64 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::I64)),
329 sym::_keccak512_hash_to_i128 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::I128)),
330 sym::_keccak512_hash_to_u8 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::U8)),
331 sym::_keccak512_hash_to_u16 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::U16)),
332 sym::_keccak512_hash_to_u32 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::U32)),
333 sym::_keccak512_hash_to_u64 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::U64)),
334 sym::_keccak512_hash_to_u128 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::U128)),
335 sym::_keccak512_hash_to_scalar => Self::Hash(HashVariant::HashKeccak512, Type::Scalar),
336 sym::_keccak512_hash_to_address_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Address),
337 sym::_keccak512_hash_to_field_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Field),
338 sym::_keccak512_hash_to_group_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Group),
339 sym::_keccak512_hash_to_i8_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::I8)),
340 sym::_keccak512_hash_to_i16_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::I16)),
341 sym::_keccak512_hash_to_i32_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::I32)),
342 sym::_keccak512_hash_to_i64_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::I64)),
343 sym::_keccak512_hash_to_i128_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::I128)),
344 sym::_keccak512_hash_to_u8_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::U8)),
345 sym::_keccak512_hash_to_u16_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::U16)),
346 sym::_keccak512_hash_to_u32_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::U32)),
347 sym::_keccak512_hash_to_u64_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::U64)),
348 sym::_keccak512_hash_to_u128_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::U128)),
349 sym::_keccak512_hash_to_scalar_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Scalar),
350 sym::_keccak512_hash_to_bits => Self::Hash(HashVariant::HashKeccak512Native, Type::Array(ArrayType::bit_array(512))),
351 sym::_keccak512_hash_to_bits_raw => Self::Hash(HashVariant::HashKeccak512NativeRaw, Type::Array(ArrayType::bit_array(512))),
352
353 sym::_pedersen64_hash_to_address => Self::Hash(HashVariant::HashPED64, Type::Address),
354 sym::_pedersen64_hash_to_field => Self::Hash(HashVariant::HashPED64, Type::Field),
355 sym::_pedersen64_hash_to_group => Self::Hash(HashVariant::HashPED64, Type::Group),
356 sym::_pedersen64_hash_to_i8 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::I8)),
357 sym::_pedersen64_hash_to_i16 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::I16)),
358 sym::_pedersen64_hash_to_i32 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::I32)),
359 sym::_pedersen64_hash_to_i64 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::I64)),
360 sym::_pedersen64_hash_to_i128 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::I128)),
361 sym::_pedersen64_hash_to_u8 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::U8)),
362 sym::_pedersen64_hash_to_u16 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::U16)),
363 sym::_pedersen64_hash_to_u32 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::U32)),
364 sym::_pedersen64_hash_to_u64 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::U64)),
365 sym::_pedersen64_hash_to_u128 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::U128)),
366 sym::_pedersen64_hash_to_scalar => Self::Hash(HashVariant::HashPED64, Type::Scalar),
367 sym::_pedersen64_hash_to_address_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Address),
368 sym::_pedersen64_hash_to_field_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Field),
369 sym::_pedersen64_hash_to_group_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Group),
370 sym::_pedersen64_hash_to_i8_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::I8)),
371 sym::_pedersen64_hash_to_i16_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::I16)),
372 sym::_pedersen64_hash_to_i32_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::I32)),
373 sym::_pedersen64_hash_to_i64_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::I64)),
374 sym::_pedersen64_hash_to_i128_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::I128)),
375 sym::_pedersen64_hash_to_u8_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::U8)),
376 sym::_pedersen64_hash_to_u16_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::U16)),
377 sym::_pedersen64_hash_to_u32_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::U32)),
378 sym::_pedersen64_hash_to_u64_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::U64)),
379 sym::_pedersen64_hash_to_u128_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::U128)),
380 sym::_pedersen64_hash_to_scalar_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Scalar),
381
382 sym::_pedersen128_hash_to_address => Self::Hash(HashVariant::HashPED128, Type::Address),
383 sym::_pedersen128_hash_to_field => Self::Hash(HashVariant::HashPED128, Type::Field),
384 sym::_pedersen128_hash_to_group => Self::Hash(HashVariant::HashPED128, Type::Group),
385 sym::_pedersen128_hash_to_i8 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::I8)),
386 sym::_pedersen128_hash_to_i16 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::I16)),
387 sym::_pedersen128_hash_to_i32 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::I32)),
388 sym::_pedersen128_hash_to_i64 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::I64)),
389 sym::_pedersen128_hash_to_i128 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::I128)),
390 sym::_pedersen128_hash_to_u8 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::U8)),
391 sym::_pedersen128_hash_to_u16 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::U16)),
392 sym::_pedersen128_hash_to_u32 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::U32)),
393 sym::_pedersen128_hash_to_u64 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::U64)),
394 sym::_pedersen128_hash_to_u128 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::U128)),
395 sym::_pedersen128_hash_to_scalar => Self::Hash(HashVariant::HashPED128, Type::Scalar),
396 sym::_pedersen128_hash_to_address_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Address),
397 sym::_pedersen128_hash_to_field_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Field),
398 sym::_pedersen128_hash_to_group_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Group),
399 sym::_pedersen128_hash_to_i8_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::I8)),
400 sym::_pedersen128_hash_to_i16_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::I16)),
401 sym::_pedersen128_hash_to_i32_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::I32)),
402 sym::_pedersen128_hash_to_i64_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::I64)),
403 sym::_pedersen128_hash_to_i128_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::I128)),
404 sym::_pedersen128_hash_to_u8_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::U8)),
405 sym::_pedersen128_hash_to_u16_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::U16)),
406 sym::_pedersen128_hash_to_u32_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::U32)),
407 sym::_pedersen128_hash_to_u64_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::U64)),
408 sym::_pedersen128_hash_to_u128_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::U128)),
409 sym::_pedersen128_hash_to_scalar_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Scalar),
410
411 sym::_poseidon2_hash_to_address => Self::Hash(HashVariant::HashPSD2, Type::Address),
412 sym::_poseidon2_hash_to_field => Self::Hash(HashVariant::HashPSD2, Type::Field),
413 sym::_poseidon2_hash_to_group => Self::Hash(HashVariant::HashPSD2, Type::Group),
414 sym::_poseidon2_hash_to_i8 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::I8)),
415 sym::_poseidon2_hash_to_i16 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::I16)),
416 sym::_poseidon2_hash_to_i32 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::I32)),
417 sym::_poseidon2_hash_to_i64 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::I64)),
418 sym::_poseidon2_hash_to_i128 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::I128)),
419 sym::_poseidon2_hash_to_u8 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::U8)),
420 sym::_poseidon2_hash_to_u16 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::U16)),
421 sym::_poseidon2_hash_to_u32 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::U32)),
422 sym::_poseidon2_hash_to_u64 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::U64)),
423 sym::_poseidon2_hash_to_u128 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::U128)),
424 sym::_poseidon2_hash_to_scalar => Self::Hash(HashVariant::HashPSD2, Type::Scalar),
425 sym::_poseidon2_hash_to_address_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Address),
426 sym::_poseidon2_hash_to_field_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Field),
427 sym::_poseidon2_hash_to_group_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Group),
428 sym::_poseidon2_hash_to_i8_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::I8)),
429 sym::_poseidon2_hash_to_i16_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::I16)),
430 sym::_poseidon2_hash_to_i32_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::I32)),
431 sym::_poseidon2_hash_to_i64_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::I64)),
432 sym::_poseidon2_hash_to_i128_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::I128)),
433 sym::_poseidon2_hash_to_u8_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::U8)),
434 sym::_poseidon2_hash_to_u16_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::U16)),
435 sym::_poseidon2_hash_to_u32_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::U32)),
436 sym::_poseidon2_hash_to_u64_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::U64)),
437 sym::_poseidon2_hash_to_u128_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::U128)),
438 sym::_poseidon2_hash_to_scalar_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Scalar),
439
440 sym::_poseidon4_hash_to_address => Self::Hash(HashVariant::HashPSD4, Type::Address),
441 sym::_poseidon4_hash_to_field => Self::Hash(HashVariant::HashPSD4, Type::Field),
442 sym::_poseidon4_hash_to_group => Self::Hash(HashVariant::HashPSD4, Type::Group),
443 sym::_poseidon4_hash_to_i8 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::I8)),
444 sym::_poseidon4_hash_to_i16 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::I16)),
445 sym::_poseidon4_hash_to_i32 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::I32)),
446 sym::_poseidon4_hash_to_i64 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::I64)),
447 sym::_poseidon4_hash_to_i128 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::I128)),
448 sym::_poseidon4_hash_to_u8 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::U8)),
449 sym::_poseidon4_hash_to_u16 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::U16)),
450 sym::_poseidon4_hash_to_u32 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::U32)),
451 sym::_poseidon4_hash_to_u64 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::U64)),
452 sym::_poseidon4_hash_to_u128 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::U128)),
453 sym::_poseidon4_hash_to_scalar => Self::Hash(HashVariant::HashPSD4, Type::Scalar),
454 sym::_poseidon4_hash_to_address_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Address),
455 sym::_poseidon4_hash_to_field_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Field),
456 sym::_poseidon4_hash_to_group_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Group),
457 sym::_poseidon4_hash_to_i8_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::I8)),
458 sym::_poseidon4_hash_to_i16_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::I16)),
459 sym::_poseidon4_hash_to_i32_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::I32)),
460 sym::_poseidon4_hash_to_i64_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::I64)),
461 sym::_poseidon4_hash_to_i128_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::I128)),
462 sym::_poseidon4_hash_to_u8_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::U8)),
463 sym::_poseidon4_hash_to_u16_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::U16)),
464 sym::_poseidon4_hash_to_u32_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::U32)),
465 sym::_poseidon4_hash_to_u64_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::U64)),
466 sym::_poseidon4_hash_to_u128_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::U128)),
467 sym::_poseidon4_hash_to_scalar_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Scalar),
468
469 sym::_poseidon8_hash_to_address => Self::Hash(HashVariant::HashPSD8, Type::Address),
470 sym::_poseidon8_hash_to_field => Self::Hash(HashVariant::HashPSD8, Type::Field),
471 sym::_poseidon8_hash_to_group => Self::Hash(HashVariant::HashPSD8, Type::Group),
472 sym::_poseidon8_hash_to_i8 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::I8)),
473 sym::_poseidon8_hash_to_i16 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::I16)),
474 sym::_poseidon8_hash_to_i32 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::I32)),
475 sym::_poseidon8_hash_to_i64 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::I64)),
476 sym::_poseidon8_hash_to_i128 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::I128)),
477 sym::_poseidon8_hash_to_u8 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::U8)),
478 sym::_poseidon8_hash_to_u16 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::U16)),
479 sym::_poseidon8_hash_to_u32 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::U32)),
480 sym::_poseidon8_hash_to_u64 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::U64)),
481 sym::_poseidon8_hash_to_u128 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::U128)),
482 sym::_poseidon8_hash_to_scalar => Self::Hash(HashVariant::HashPSD8, Type::Scalar),
483 sym::_poseidon8_hash_to_address_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Address),
484 sym::_poseidon8_hash_to_field_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Field),
485 sym::_poseidon8_hash_to_group_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Group),
486 sym::_poseidon8_hash_to_i8_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::I8)),
487 sym::_poseidon8_hash_to_i16_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::I16)),
488 sym::_poseidon8_hash_to_i32_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::I32)),
489 sym::_poseidon8_hash_to_i64_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::I64)),
490 sym::_poseidon8_hash_to_i128_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::I128)),
491 sym::_poseidon8_hash_to_u8_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::U8)),
492 sym::_poseidon8_hash_to_u16_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::U16)),
493 sym::_poseidon8_hash_to_u32_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::U32)),
494 sym::_poseidon8_hash_to_u64_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::U64)),
495 sym::_poseidon8_hash_to_u128_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::U128)),
496 sym::_poseidon8_hash_to_scalar_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Scalar),
497
498 sym::_sha3_256_hash_to_address => Self::Hash(HashVariant::HashSha3_256, Type::Address),
499 sym::_sha3_256_hash_to_field => Self::Hash(HashVariant::HashSha3_256, Type::Field),
500 sym::_sha3_256_hash_to_group => Self::Hash(HashVariant::HashSha3_256, Type::Group),
501 sym::_sha3_256_hash_to_i8 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::I8)),
502 sym::_sha3_256_hash_to_i16 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::I16)),
503 sym::_sha3_256_hash_to_i32 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::I32)),
504 sym::_sha3_256_hash_to_i64 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::I64)),
505 sym::_sha3_256_hash_to_i128 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::I128)),
506 sym::_sha3_256_hash_to_u8 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::U8)),
507 sym::_sha3_256_hash_to_u16 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::U16)),
508 sym::_sha3_256_hash_to_u32 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::U32)),
509 sym::_sha3_256_hash_to_u64 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::U64)),
510 sym::_sha3_256_hash_to_u128 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::U128)),
511 sym::_sha3_256_hash_to_scalar => Self::Hash(HashVariant::HashSha3_256, Type::Scalar),
512 sym::_sha3_256_hash_to_address_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Address),
513 sym::_sha3_256_hash_to_field_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Field),
514 sym::_sha3_256_hash_to_group_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Group),
515 sym::_sha3_256_hash_to_i8_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::I8)),
516 sym::_sha3_256_hash_to_i16_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::I16)),
517 sym::_sha3_256_hash_to_i32_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::I32)),
518 sym::_sha3_256_hash_to_i64_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::I64)),
519 sym::_sha3_256_hash_to_i128_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::I128)),
520 sym::_sha3_256_hash_to_u8_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::U8)),
521 sym::_sha3_256_hash_to_u16_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::U16)),
522 sym::_sha3_256_hash_to_u32_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::U32)),
523 sym::_sha3_256_hash_to_u64_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::U64)),
524 sym::_sha3_256_hash_to_u128_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::U128)),
525 sym::_sha3_256_hash_to_scalar_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Scalar),
526 sym::_sha3_256_hash_to_bits => Self::Hash(HashVariant::HashSha3_256Native, Type::Array(ArrayType::bit_array(256))),
527 sym::_sha3_256_hash_to_bits_raw => Self::Hash(HashVariant::HashSha3_256NativeRaw, Type::Array(ArrayType::bit_array(256))),
528
529 sym::_sha3_384_hash_to_address => Self::Hash(HashVariant::HashSha3_384, Type::Address),
530 sym::_sha3_384_hash_to_field => Self::Hash(HashVariant::HashSha3_384, Type::Field),
531 sym::_sha3_384_hash_to_group => Self::Hash(HashVariant::HashSha3_384, Type::Group),
532 sym::_sha3_384_hash_to_i8 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::I8)),
533 sym::_sha3_384_hash_to_i16 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::I16)),
534 sym::_sha3_384_hash_to_i32 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::I32)),
535 sym::_sha3_384_hash_to_i64 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::I64)),
536 sym::_sha3_384_hash_to_i128 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::I128)),
537 sym::_sha3_384_hash_to_u8 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::U8)),
538 sym::_sha3_384_hash_to_u16 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::U16)),
539 sym::_sha3_384_hash_to_u32 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::U32)),
540 sym::_sha3_384_hash_to_u64 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::U64)),
541 sym::_sha3_384_hash_to_u128 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::U128)),
542 sym::_sha3_384_hash_to_scalar => Self::Hash(HashVariant::HashSha3_384, Type::Scalar),
543 sym::_sha3_384_hash_to_address_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Address),
544 sym::_sha3_384_hash_to_field_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Field),
545 sym::_sha3_384_hash_to_group_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Group),
546 sym::_sha3_384_hash_to_i8_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::I8)),
547 sym::_sha3_384_hash_to_i16_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::I16)),
548 sym::_sha3_384_hash_to_i32_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::I32)),
549 sym::_sha3_384_hash_to_i64_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::I64)),
550 sym::_sha3_384_hash_to_i128_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::I128)),
551 sym::_sha3_384_hash_to_u8_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::U8)),
552 sym::_sha3_384_hash_to_u16_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::U16)),
553 sym::_sha3_384_hash_to_u32_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::U32)),
554 sym::_sha3_384_hash_to_u64_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::U64)),
555 sym::_sha3_384_hash_to_u128_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::U128)),
556 sym::_sha3_384_hash_to_scalar_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Scalar),
557 sym::_sha3_384_hash_to_bits => Self::Hash(HashVariant::HashSha3_384Native, Type::Array(ArrayType::bit_array(384))),
558 sym::_sha3_384_hash_to_bits_raw => Self::Hash(HashVariant::HashSha3_384NativeRaw, Type::Array(ArrayType::bit_array(384))),
559
560 sym::_sha3_512_hash_to_address => Self::Hash(HashVariant::HashSha3_512, Type::Address),
561 sym::_sha3_512_hash_to_field => Self::Hash(HashVariant::HashSha3_512, Type::Field),
562 sym::_sha3_512_hash_to_group => Self::Hash(HashVariant::HashSha3_512, Type::Group),
563 sym::_sha3_512_hash_to_i8 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::I8)),
564 sym::_sha3_512_hash_to_i16 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::I16)),
565 sym::_sha3_512_hash_to_i32 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::I32)),
566 sym::_sha3_512_hash_to_i64 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::I64)),
567 sym::_sha3_512_hash_to_i128 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::I128)),
568 sym::_sha3_512_hash_to_u8 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::U8)),
569 sym::_sha3_512_hash_to_u16 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::U16)),
570 sym::_sha3_512_hash_to_u32 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::U32)),
571 sym::_sha3_512_hash_to_u64 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::U64)),
572 sym::_sha3_512_hash_to_u128 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::U128)),
573 sym::_sha3_512_hash_to_scalar => Self::Hash(HashVariant::HashSha3_512, Type::Scalar),
574 sym::_sha3_512_hash_to_address_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Address),
575 sym::_sha3_512_hash_to_field_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Field),
576 sym::_sha3_512_hash_to_group_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Group),
577 sym::_sha3_512_hash_to_i8_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::I8)),
578 sym::_sha3_512_hash_to_i16_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::I16)),
579 sym::_sha3_512_hash_to_i32_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::I32)),
580 sym::_sha3_512_hash_to_i64_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::I64)),
581 sym::_sha3_512_hash_to_i128_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::I128)),
582 sym::_sha3_512_hash_to_u8_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::U8)),
583 sym::_sha3_512_hash_to_u16_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::U16)),
584 sym::_sha3_512_hash_to_u32_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::U32)),
585 sym::_sha3_512_hash_to_u64_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::U64)),
586 sym::_sha3_512_hash_to_u128_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::U128)),
587 sym::_sha3_512_hash_to_scalar_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Scalar),
588 sym::_sha3_512_hash_to_bits => Self::Hash(HashVariant::HashSha3_512Native, Type::Array(ArrayType::bit_array(512))),
589 sym::_sha3_512_hash_to_bits_raw => Self::Hash(HashVariant::HashSha3_512NativeRaw, Type::Array(ArrayType::bit_array(512))),
590
591 sym::_ecdsa_verify_digest => Self::ECDSAVerify(ECDSAVerifyVariant::Digest),
592 sym::_ecdsa_verify_digest_eth => Self::ECDSAVerify(ECDSAVerifyVariant::DigestEth),
593 sym::_ecdsa_verify_keccak256 => Self::ECDSAVerify(ECDSAVerifyVariant::HashKeccak256),
594 sym::_ecdsa_verify_keccak256_raw => Self::ECDSAVerify(ECDSAVerifyVariant::HashKeccak256Raw),
595 sym::_ecdsa_verify_keccak256_eth => Self::ECDSAVerify(ECDSAVerifyVariant::HashKeccak256Eth),
596 sym::_ecdsa_verify_keccak384 => Self::ECDSAVerify(ECDSAVerifyVariant::HashKeccak384),
597 sym::_ecdsa_verify_keccak384_raw => Self::ECDSAVerify(ECDSAVerifyVariant::HashKeccak384Raw),
598 sym::_ecdsa_verify_keccak384_eth => Self::ECDSAVerify(ECDSAVerifyVariant::HashKeccak384Eth),
599 sym::_ecdsa_verify_keccak512 => Self::ECDSAVerify(ECDSAVerifyVariant::HashKeccak512),
600 sym::_ecdsa_verify_keccak512_raw => Self::ECDSAVerify(ECDSAVerifyVariant::HashKeccak512Raw),
601 sym::_ecdsa_verify_keccak512_eth => Self::ECDSAVerify(ECDSAVerifyVariant::HashKeccak512Eth),
602 sym::_ecdsa_verify_sha3_256 => Self::ECDSAVerify(ECDSAVerifyVariant::HashSha3_256),
603 sym::_ecdsa_verify_sha3_256_raw => Self::ECDSAVerify(ECDSAVerifyVariant::HashSha3_256Raw),
604 sym::_ecdsa_verify_sha3_256_eth => Self::ECDSAVerify(ECDSAVerifyVariant::HashSha3_256Eth),
605 sym::_ecdsa_verify_sha3_384 => Self::ECDSAVerify(ECDSAVerifyVariant::HashSha3_384),
606 sym::_ecdsa_verify_sha3_384_raw => Self::ECDSAVerify(ECDSAVerifyVariant::HashSha3_384Raw),
607 sym::_ecdsa_verify_sha3_384_eth => Self::ECDSAVerify(ECDSAVerifyVariant::HashSha3_384Eth),
608 sym::_ecdsa_verify_sha3_512 => Self::ECDSAVerify(ECDSAVerifyVariant::HashSha3_512),
609 sym::_ecdsa_verify_sha3_512_raw => Self::ECDSAVerify(ECDSAVerifyVariant::HashSha3_512Raw),
610 sym::_ecdsa_verify_sha3_512_eth => Self::ECDSAVerify(ECDSAVerifyVariant::HashSha3_512Eth),
611
612 sym::_mapping_get => Self::Get,
613 sym::_mapping_set => Self::Set,
614 sym::_mapping_get_or_use => Self::MappingGetOrUse,
615 sym::_mapping_remove => Self::MappingRemove,
616 sym::_mapping_contains => Self::MappingContains,
617
618 sym::_optional_unwrap => Self::OptionalUnwrap,
619 sym::_optional_unwrap_or => Self::OptionalUnwrapOr,
620
621 sym::_vector_get => Self::Get,
622 sym::_vector_set => Self::Set,
623 sym::_vector_push => Self::VectorPush,
624 sym::_vector_len => Self::VectorLen,
625 sym::_vector_clear => Self::VectorClear,
626 sym::_vector_pop => Self::VectorPop,
627 sym::_vector_swap_remove => Self::VectorSwapRemove,
628
629 sym::_group_to_x_coordinate => Self::GroupToXCoordinate,
630 sym::_group_to_y_coordinate => Self::GroupToYCoordinate,
631
632 sym::_program_checksum => Self::ProgramChecksum,
633 sym::_program_edition => Self::ProgramEdition,
634 sym::_program_owner => Self::ProgramOwner,
635
636 sym::_signature_verify => Self::SignatureVerify,
637 sym::_future_await => Self::FutureAwait,
638
639 sym::_serialize_to_bits => Self::Serialize(SerializeVariant::ToBits),
640 sym::_serialize_to_bits_raw => Self::Serialize(SerializeVariant::ToBitsRaw),
641
642 sym::_cheat_code_print_mapping => Self::CheatCodePrintMapping,
643 sym::_cheat_code_set_block_height => Self::CheatCodeSetBlockHeight,
644 sym::_cheat_code_set_block_timestamp => Self::CheatCodeSetBlockTimestamp,
645 sym::_cheat_code_set_signer => Self::CheatCodeSetSigner,
646
647 _ => return None,
648 })
649 }
650
651 #[rustfmt::skip]
653 pub fn convert_path_symbols(module: Symbol, function: Symbol) -> Option<Symbol> {
654 Some(match (module, function) {
655 (sym::Deserialize, sym::from_bits) => sym::_deserialize_from_bits,
656 (sym::Deserialize, sym::from_bits_raw) => sym::_deserialize_from_bits_raw,
657
658 (sym::ChaCha, sym::rand_address) => sym::_chacha_rand_address,
659 (sym::ChaCha, sym::rand_bool) => sym::_chacha_rand_bool,
660 (sym::ChaCha, sym::rand_field) => sym::_chacha_rand_field,
661 (sym::ChaCha, sym::rand_group) => sym::_chacha_rand_group,
662 (sym::ChaCha, sym::rand_i8) => sym::_chacha_rand_i8,
663 (sym::ChaCha, sym::rand_i16) => sym::_chacha_rand_i16,
664 (sym::ChaCha, sym::rand_i32) => sym::_chacha_rand_i32,
665 (sym::ChaCha, sym::rand_i64) => sym::_chacha_rand_i64,
666 (sym::ChaCha, sym::rand_i128) => sym::_chacha_rand_i128,
667 (sym::ChaCha, sym::rand_u8) => sym::_chacha_rand_u8,
668 (sym::ChaCha, sym::rand_u16) => sym::_chacha_rand_u16,
669 (sym::ChaCha, sym::rand_u32) => sym::_chacha_rand_u32,
670 (sym::ChaCha, sym::rand_u64) => sym::_chacha_rand_u64,
671 (sym::ChaCha, sym::rand_u128) => sym::_chacha_rand_u128,
672 (sym::ChaCha, sym::rand_scalar) => sym::_chacha_rand_scalar,
673
674 (sym::BHP256, sym::commit_to_address) => sym::_bhp256_commit_to_address,
675 (sym::BHP256, sym::commit_to_field) => sym::_bhp256_commit_to_field,
676 (sym::BHP256, sym::commit_to_group) => sym::_bhp256_commit_to_group,
677 (sym::BHP512, sym::commit_to_address) => sym::_bhp512_commit_to_address,
678 (sym::BHP512, sym::commit_to_field) => sym::_bhp512_commit_to_field,
679 (sym::BHP512, sym::commit_to_group) => sym::_bhp512_commit_to_group,
680 (sym::BHP768, sym::commit_to_address) => sym::_bhp768_commit_to_address,
681 (sym::BHP768, sym::commit_to_field) => sym::_bhp768_commit_to_field,
682 (sym::BHP768, sym::commit_to_group) => sym::_bhp768_commit_to_group,
683 (sym::BHP1024, sym::commit_to_address) => sym::_bhp1024_commit_to_address,
684 (sym::BHP1024, sym::commit_to_field) => sym::_bhp1024_commit_to_field,
685 (sym::BHP1024, sym::commit_to_group) => sym::_bhp1024_commit_to_group,
686 (sym::Pedersen64, sym::commit_to_address) => sym::_pedersen64_commit_to_address,
687 (sym::Pedersen64, sym::commit_to_field) => sym::_pedersen64_commit_to_field,
688 (sym::Pedersen64, sym::commit_to_group) => sym::_pedersen64_commit_to_group,
689 (sym::Pedersen128, sym::commit_to_address) => sym::_pedersen128_commit_to_address,
690 (sym::Pedersen128, sym::commit_to_field) => sym::_pedersen128_commit_to_field,
691 (sym::Pedersen128, sym::commit_to_group) => sym::_pedersen128_commit_to_group,
692
693 (sym::BHP256, sym::hash_to_address) => sym::_bhp256_hash_to_address,
694 (sym::BHP256, sym::hash_to_field) => sym::_bhp256_hash_to_field,
695 (sym::BHP256, sym::hash_to_group) => sym::_bhp256_hash_to_group,
696 (sym::BHP256, sym::hash_to_i8) => sym::_bhp256_hash_to_i8,
697 (sym::BHP256, sym::hash_to_i16) => sym::_bhp256_hash_to_i16,
698 (sym::BHP256, sym::hash_to_i32) => sym::_bhp256_hash_to_i32,
699 (sym::BHP256, sym::hash_to_i64) => sym::_bhp256_hash_to_i64,
700 (sym::BHP256, sym::hash_to_i128) => sym::_bhp256_hash_to_i128,
701 (sym::BHP256, sym::hash_to_u8) => sym::_bhp256_hash_to_u8,
702 (sym::BHP256, sym::hash_to_u16) => sym::_bhp256_hash_to_u16,
703 (sym::BHP256, sym::hash_to_u32) => sym::_bhp256_hash_to_u32,
704 (sym::BHP256, sym::hash_to_u64) => sym::_bhp256_hash_to_u64,
705 (sym::BHP256, sym::hash_to_u128) => sym::_bhp256_hash_to_u128,
706 (sym::BHP256, sym::hash_to_scalar) => sym::_bhp256_hash_to_scalar,
707 (sym::BHP256, sym::hash_to_address_raw) => sym::_bhp256_hash_to_address_raw,
708 (sym::BHP256, sym::hash_to_field_raw) => sym::_bhp256_hash_to_field_raw,
709 (sym::BHP256, sym::hash_to_group_raw) => sym::_bhp256_hash_to_group_raw,
710 (sym::BHP256, sym::hash_to_i8_raw) => sym::_bhp256_hash_to_i8_raw,
711 (sym::BHP256, sym::hash_to_i16_raw) => sym::_bhp256_hash_to_i16_raw,
712 (sym::BHP256, sym::hash_to_i32_raw) => sym::_bhp256_hash_to_i32_raw,
713 (sym::BHP256, sym::hash_to_i64_raw) => sym::_bhp256_hash_to_i64_raw,
714 (sym::BHP256, sym::hash_to_i128_raw) => sym::_bhp256_hash_to_i128_raw,
715 (sym::BHP256, sym::hash_to_u8_raw) => sym::_bhp256_hash_to_u8_raw,
716 (sym::BHP256, sym::hash_to_u16_raw) => sym::_bhp256_hash_to_u16_raw,
717 (sym::BHP256, sym::hash_to_u32_raw) => sym::_bhp256_hash_to_u32_raw,
718 (sym::BHP256, sym::hash_to_u64_raw) => sym::_bhp256_hash_to_u64_raw,
719 (sym::BHP256, sym::hash_to_u128_raw) => sym::_bhp256_hash_to_u128_raw,
720 (sym::BHP256, sym::hash_to_scalar_raw) => sym::_bhp256_hash_to_scalar_raw,
721
722 (sym::BHP512, sym::hash_to_address) => sym::_bhp512_hash_to_address,
723 (sym::BHP512, sym::hash_to_field) => sym::_bhp512_hash_to_field,
724 (sym::BHP512, sym::hash_to_group) => sym::_bhp512_hash_to_group,
725 (sym::BHP512, sym::hash_to_i8) => sym::_bhp512_hash_to_i8,
726 (sym::BHP512, sym::hash_to_i16) => sym::_bhp512_hash_to_i16,
727 (sym::BHP512, sym::hash_to_i32) => sym::_bhp512_hash_to_i32,
728 (sym::BHP512, sym::hash_to_i64) => sym::_bhp512_hash_to_i64,
729 (sym::BHP512, sym::hash_to_i128) => sym::_bhp512_hash_to_i128,
730 (sym::BHP512, sym::hash_to_u8) => sym::_bhp512_hash_to_u8,
731 (sym::BHP512, sym::hash_to_u16) => sym::_bhp512_hash_to_u16,
732 (sym::BHP512, sym::hash_to_u32) => sym::_bhp512_hash_to_u32,
733 (sym::BHP512, sym::hash_to_u64) => sym::_bhp512_hash_to_u64,
734 (sym::BHP512, sym::hash_to_u128) => sym::_bhp512_hash_to_u128,
735 (sym::BHP512, sym::hash_to_scalar) => sym::_bhp512_hash_to_scalar,
736 (sym::BHP512, sym::hash_to_address_raw) => sym::_bhp512_hash_to_address_raw,
737 (sym::BHP512, sym::hash_to_field_raw) => sym::_bhp512_hash_to_field_raw,
738 (sym::BHP512, sym::hash_to_group_raw) => sym::_bhp512_hash_to_group_raw,
739 (sym::BHP512, sym::hash_to_i8_raw) => sym::_bhp512_hash_to_i8_raw,
740 (sym::BHP512, sym::hash_to_i16_raw) => sym::_bhp512_hash_to_i16_raw,
741 (sym::BHP512, sym::hash_to_i32_raw) => sym::_bhp512_hash_to_i32_raw,
742 (sym::BHP512, sym::hash_to_i64_raw) => sym::_bhp512_hash_to_i64_raw,
743 (sym::BHP512, sym::hash_to_i128_raw) => sym::_bhp512_hash_to_i128_raw,
744 (sym::BHP512, sym::hash_to_u8_raw) => sym::_bhp512_hash_to_u8_raw,
745 (sym::BHP512, sym::hash_to_u16_raw) => sym::_bhp512_hash_to_u16_raw,
746 (sym::BHP512, sym::hash_to_u32_raw) => sym::_bhp512_hash_to_u32_raw,
747 (sym::BHP512, sym::hash_to_u64_raw) => sym::_bhp512_hash_to_u64_raw,
748 (sym::BHP512, sym::hash_to_u128_raw) => sym::_bhp512_hash_to_u128_raw,
749 (sym::BHP512, sym::hash_to_scalar_raw) => sym::_bhp512_hash_to_scalar_raw,
750
751 (sym::BHP768, sym::hash_to_address) => sym::_bhp768_hash_to_address,
752 (sym::BHP768, sym::hash_to_field) => sym::_bhp768_hash_to_field,
753 (sym::BHP768, sym::hash_to_group) => sym::_bhp768_hash_to_group,
754 (sym::BHP768, sym::hash_to_i8) => sym::_bhp768_hash_to_i8,
755 (sym::BHP768, sym::hash_to_i16) => sym::_bhp768_hash_to_i16,
756 (sym::BHP768, sym::hash_to_i32) => sym::_bhp768_hash_to_i32,
757 (sym::BHP768, sym::hash_to_i64) => sym::_bhp768_hash_to_i64,
758 (sym::BHP768, sym::hash_to_i128) => sym::_bhp768_hash_to_i128,
759 (sym::BHP768, sym::hash_to_u8) => sym::_bhp768_hash_to_u8,
760 (sym::BHP768, sym::hash_to_u16) => sym::_bhp768_hash_to_u16,
761 (sym::BHP768, sym::hash_to_u32) => sym::_bhp768_hash_to_u32,
762 (sym::BHP768, sym::hash_to_u64) => sym::_bhp768_hash_to_u64,
763 (sym::BHP768, sym::hash_to_u128) => sym::_bhp768_hash_to_u128,
764 (sym::BHP768, sym::hash_to_scalar) => sym::_bhp768_hash_to_scalar,
765 (sym::BHP768, sym::hash_to_address_raw) => sym::_bhp768_hash_to_address_raw,
766 (sym::BHP768, sym::hash_to_field_raw) => sym::_bhp768_hash_to_field_raw,
767 (sym::BHP768, sym::hash_to_group_raw) => sym::_bhp768_hash_to_group_raw,
768 (sym::BHP768, sym::hash_to_i8_raw) => sym::_bhp768_hash_to_i8_raw,
769 (sym::BHP768, sym::hash_to_i16_raw) => sym::_bhp768_hash_to_i16_raw,
770 (sym::BHP768, sym::hash_to_i32_raw) => sym::_bhp768_hash_to_i32_raw,
771 (sym::BHP768, sym::hash_to_i64_raw) => sym::_bhp768_hash_to_i64_raw,
772 (sym::BHP768, sym::hash_to_i128_raw) => sym::_bhp768_hash_to_i128_raw,
773 (sym::BHP768, sym::hash_to_u8_raw) => sym::_bhp768_hash_to_u8_raw,
774 (sym::BHP768, sym::hash_to_u16_raw) => sym::_bhp768_hash_to_u16_raw,
775 (sym::BHP768, sym::hash_to_u32_raw) => sym::_bhp768_hash_to_u32_raw,
776 (sym::BHP768, sym::hash_to_u64_raw) => sym::_bhp768_hash_to_u64_raw,
777 (sym::BHP768, sym::hash_to_u128_raw) => sym::_bhp768_hash_to_u128_raw,
778 (sym::BHP768, sym::hash_to_scalar_raw) => sym::_bhp768_hash_to_scalar_raw,
779
780 (sym::BHP1024, sym::hash_to_address) => sym::_bhp1024_hash_to_address,
781 (sym::BHP1024, sym::hash_to_field) => sym::_bhp1024_hash_to_field,
782 (sym::BHP1024, sym::hash_to_group) => sym::_bhp1024_hash_to_group,
783 (sym::BHP1024, sym::hash_to_i8) => sym::_bhp1024_hash_to_i8,
784 (sym::BHP1024, sym::hash_to_i16) => sym::_bhp1024_hash_to_i16,
785 (sym::BHP1024, sym::hash_to_i32) => sym::_bhp1024_hash_to_i32,
786 (sym::BHP1024, sym::hash_to_i64) => sym::_bhp1024_hash_to_i64,
787 (sym::BHP1024, sym::hash_to_i128) => sym::_bhp1024_hash_to_i128,
788 (sym::BHP1024, sym::hash_to_u8) => sym::_bhp1024_hash_to_u8,
789 (sym::BHP1024, sym::hash_to_u16) => sym::_bhp1024_hash_to_u16,
790 (sym::BHP1024, sym::hash_to_u32) => sym::_bhp1024_hash_to_u32,
791 (sym::BHP1024, sym::hash_to_u64) => sym::_bhp1024_hash_to_u64,
792 (sym::BHP1024, sym::hash_to_u128) => sym::_bhp1024_hash_to_u128,
793 (sym::BHP1024, sym::hash_to_scalar) => sym::_bhp1024_hash_to_scalar,
794 (sym::BHP1024, sym::hash_to_address_raw) => sym::_bhp1024_hash_to_address_raw,
795 (sym::BHP1024, sym::hash_to_field_raw) => sym::_bhp1024_hash_to_field_raw,
796 (sym::BHP1024, sym::hash_to_group_raw) => sym::_bhp1024_hash_to_group_raw,
797 (sym::BHP1024, sym::hash_to_i8_raw) => sym::_bhp1024_hash_to_i8_raw,
798 (sym::BHP1024, sym::hash_to_i16_raw) => sym::_bhp1024_hash_to_i16_raw,
799 (sym::BHP1024, sym::hash_to_i32_raw) => sym::_bhp1024_hash_to_i32_raw,
800 (sym::BHP1024, sym::hash_to_i64_raw) => sym::_bhp1024_hash_to_i64_raw,
801 (sym::BHP1024, sym::hash_to_i128_raw) => sym::_bhp1024_hash_to_i128_raw,
802 (sym::BHP1024, sym::hash_to_u8_raw) => sym::_bhp1024_hash_to_u8_raw,
803 (sym::BHP1024, sym::hash_to_u16_raw) => sym::_bhp1024_hash_to_u16_raw,
804 (sym::BHP1024, sym::hash_to_u32_raw) => sym::_bhp1024_hash_to_u32_raw,
805 (sym::BHP1024, sym::hash_to_u64_raw) => sym::_bhp1024_hash_to_u64_raw,
806 (sym::BHP1024, sym::hash_to_u128_raw) => sym::_bhp1024_hash_to_u128_raw,
807 (sym::BHP1024, sym::hash_to_scalar_raw) => sym::_bhp1024_hash_to_scalar_raw,
808
809 (sym::Keccak256, sym::hash_to_address) => sym::_keccak256_hash_to_address,
810 (sym::Keccak256, sym::hash_to_field) => sym::_keccak256_hash_to_field,
811 (sym::Keccak256, sym::hash_to_group) => sym::_keccak256_hash_to_group,
812 (sym::Keccak256, sym::hash_to_i8) => sym::_keccak256_hash_to_i8,
813 (sym::Keccak256, sym::hash_to_i16) => sym::_keccak256_hash_to_i16,
814 (sym::Keccak256, sym::hash_to_i32) => sym::_keccak256_hash_to_i32,
815 (sym::Keccak256, sym::hash_to_i64) => sym::_keccak256_hash_to_i64,
816 (sym::Keccak256, sym::hash_to_i128) => sym::_keccak256_hash_to_i128,
817 (sym::Keccak256, sym::hash_to_u8) => sym::_keccak256_hash_to_u8,
818 (sym::Keccak256, sym::hash_to_u16) => sym::_keccak256_hash_to_u16,
819 (sym::Keccak256, sym::hash_to_u32) => sym::_keccak256_hash_to_u32,
820 (sym::Keccak256, sym::hash_to_u64) => sym::_keccak256_hash_to_u64,
821 (sym::Keccak256, sym::hash_to_u128) => sym::_keccak256_hash_to_u128,
822 (sym::Keccak256, sym::hash_to_scalar) => sym::_keccak256_hash_to_scalar,
823 (sym::Keccak256, sym::hash_to_address_raw) => sym::_keccak256_hash_to_address_raw,
824 (sym::Keccak256, sym::hash_to_field_raw) => sym::_keccak256_hash_to_field_raw,
825 (sym::Keccak256, sym::hash_to_group_raw) => sym::_keccak256_hash_to_group_raw,
826 (sym::Keccak256, sym::hash_to_i8_raw) => sym::_keccak256_hash_to_i8_raw,
827 (sym::Keccak256, sym::hash_to_i16_raw) => sym::_keccak256_hash_to_i16_raw,
828 (sym::Keccak256, sym::hash_to_i32_raw) => sym::_keccak256_hash_to_i32_raw,
829 (sym::Keccak256, sym::hash_to_i64_raw) => sym::_keccak256_hash_to_i64_raw,
830 (sym::Keccak256, sym::hash_to_i128_raw) => sym::_keccak256_hash_to_i128_raw,
831 (sym::Keccak256, sym::hash_to_u8_raw) => sym::_keccak256_hash_to_u8_raw,
832 (sym::Keccak256, sym::hash_to_u16_raw) => sym::_keccak256_hash_to_u16_raw,
833 (sym::Keccak256, sym::hash_to_u32_raw) => sym::_keccak256_hash_to_u32_raw,
834 (sym::Keccak256, sym::hash_to_u64_raw) => sym::_keccak256_hash_to_u64_raw,
835 (sym::Keccak256, sym::hash_to_u128_raw) => sym::_keccak256_hash_to_u128_raw,
836 (sym::Keccak256, sym::hash_to_scalar_raw) => sym::_keccak256_hash_to_scalar_raw,
837 (sym::Keccak256, sym::hash_to_bits) => sym::_keccak256_hash_to_bits,
838 (sym::Keccak256, sym::hash_to_bits_raw) => sym::_keccak256_hash_to_bits_raw,
839
840 (sym::Keccak384, sym::hash_to_address) => sym::_keccak384_hash_to_address,
841 (sym::Keccak384, sym::hash_to_field) => sym::_keccak384_hash_to_field,
842 (sym::Keccak384, sym::hash_to_group) => sym::_keccak384_hash_to_group,
843 (sym::Keccak384, sym::hash_to_i8) => sym::_keccak384_hash_to_i8,
844 (sym::Keccak384, sym::hash_to_i16) => sym::_keccak384_hash_to_i16,
845 (sym::Keccak384, sym::hash_to_i32) => sym::_keccak384_hash_to_i32,
846 (sym::Keccak384, sym::hash_to_i64) => sym::_keccak384_hash_to_i64,
847 (sym::Keccak384, sym::hash_to_i128) => sym::_keccak384_hash_to_i128,
848 (sym::Keccak384, sym::hash_to_u8) => sym::_keccak384_hash_to_u8,
849 (sym::Keccak384, sym::hash_to_u16) => sym::_keccak384_hash_to_u16,
850 (sym::Keccak384, sym::hash_to_u32) => sym::_keccak384_hash_to_u32,
851 (sym::Keccak384, sym::hash_to_u64) => sym::_keccak384_hash_to_u64,
852 (sym::Keccak384, sym::hash_to_u128) => sym::_keccak384_hash_to_u128,
853 (sym::Keccak384, sym::hash_to_scalar) => sym::_keccak384_hash_to_scalar,
854 (sym::Keccak384, sym::hash_to_address_raw) => sym::_keccak384_hash_to_address_raw,
855 (sym::Keccak384, sym::hash_to_field_raw) => sym::_keccak384_hash_to_field_raw,
856 (sym::Keccak384, sym::hash_to_group_raw) => sym::_keccak384_hash_to_group_raw,
857 (sym::Keccak384, sym::hash_to_i8_raw) => sym::_keccak384_hash_to_i8_raw,
858 (sym::Keccak384, sym::hash_to_i16_raw) => sym::_keccak384_hash_to_i16_raw,
859 (sym::Keccak384, sym::hash_to_i32_raw) => sym::_keccak384_hash_to_i32_raw,
860 (sym::Keccak384, sym::hash_to_i64_raw) => sym::_keccak384_hash_to_i64_raw,
861 (sym::Keccak384, sym::hash_to_i128_raw) => sym::_keccak384_hash_to_i128_raw,
862 (sym::Keccak384, sym::hash_to_u8_raw) => sym::_keccak384_hash_to_u8_raw,
863 (sym::Keccak384, sym::hash_to_u16_raw) => sym::_keccak384_hash_to_u16_raw,
864 (sym::Keccak384, sym::hash_to_u32_raw) => sym::_keccak384_hash_to_u32_raw,
865 (sym::Keccak384, sym::hash_to_u64_raw) => sym::_keccak384_hash_to_u64_raw,
866 (sym::Keccak384, sym::hash_to_u128_raw) => sym::_keccak384_hash_to_u128_raw,
867 (sym::Keccak384, sym::hash_to_scalar_raw) => sym::_keccak384_hash_to_scalar_raw,
868 (sym::Keccak384, sym::hash_to_bits) => sym::_keccak384_hash_to_bits,
869 (sym::Keccak384, sym::hash_to_bits_raw) => sym::_keccak384_hash_to_bits_raw,
870
871 (sym::Keccak512, sym::hash_to_address) => sym::_keccak512_hash_to_address,
872 (sym::Keccak512, sym::hash_to_field) => sym::_keccak512_hash_to_field,
873 (sym::Keccak512, sym::hash_to_group) => sym::_keccak512_hash_to_group,
874 (sym::Keccak512, sym::hash_to_i8) => sym::_keccak512_hash_to_i8,
875 (sym::Keccak512, sym::hash_to_i16) => sym::_keccak512_hash_to_i16,
876 (sym::Keccak512, sym::hash_to_i32) => sym::_keccak512_hash_to_i32,
877 (sym::Keccak512, sym::hash_to_i64) => sym::_keccak512_hash_to_i64,
878 (sym::Keccak512, sym::hash_to_i128) => sym::_keccak512_hash_to_i128,
879 (sym::Keccak512, sym::hash_to_u8) => sym::_keccak512_hash_to_u8,
880 (sym::Keccak512, sym::hash_to_u16) => sym::_keccak512_hash_to_u16,
881 (sym::Keccak512, sym::hash_to_u32) => sym::_keccak512_hash_to_u32,
882 (sym::Keccak512, sym::hash_to_u64) => sym::_keccak512_hash_to_u64,
883 (sym::Keccak512, sym::hash_to_u128) => sym::_keccak512_hash_to_u128,
884 (sym::Keccak512, sym::hash_to_scalar) => sym::_keccak512_hash_to_scalar,
885 (sym::Keccak512, sym::hash_to_address_raw) => sym::_keccak512_hash_to_address_raw,
886 (sym::Keccak512, sym::hash_to_field_raw) => sym::_keccak512_hash_to_field_raw,
887 (sym::Keccak512, sym::hash_to_group_raw) => sym::_keccak512_hash_to_group_raw,
888 (sym::Keccak512, sym::hash_to_i8_raw) => sym::_keccak512_hash_to_i8_raw,
889 (sym::Keccak512, sym::hash_to_i16_raw) => sym::_keccak512_hash_to_i16_raw,
890 (sym::Keccak512, sym::hash_to_i32_raw) => sym::_keccak512_hash_to_i32_raw,
891 (sym::Keccak512, sym::hash_to_i64_raw) => sym::_keccak512_hash_to_i64_raw,
892 (sym::Keccak512, sym::hash_to_i128_raw) => sym::_keccak512_hash_to_i128_raw,
893 (sym::Keccak512, sym::hash_to_u8_raw) => sym::_keccak512_hash_to_u8_raw,
894 (sym::Keccak512, sym::hash_to_u16_raw) => sym::_keccak512_hash_to_u16_raw,
895 (sym::Keccak512, sym::hash_to_u32_raw) => sym::_keccak512_hash_to_u32_raw,
896 (sym::Keccak512, sym::hash_to_u64_raw) => sym::_keccak512_hash_to_u64_raw,
897 (sym::Keccak512, sym::hash_to_u128_raw) => sym::_keccak512_hash_to_u128_raw,
898 (sym::Keccak512, sym::hash_to_scalar_raw) => sym::_keccak512_hash_to_scalar_raw,
899 (sym::Keccak512, sym::hash_to_bits) => sym::_keccak512_hash_to_bits,
900 (sym::Keccak512, sym::hash_to_bits_raw) => sym::_keccak512_hash_to_bits_raw,
901
902 (sym::Pedersen64, sym::hash_to_address) => sym::_pedersen64_hash_to_address,
903 (sym::Pedersen64, sym::hash_to_field) => sym::_pedersen64_hash_to_field,
904 (sym::Pedersen64, sym::hash_to_group) => sym::_pedersen64_hash_to_group,
905 (sym::Pedersen64, sym::hash_to_i8) => sym::_pedersen64_hash_to_i8,
906 (sym::Pedersen64, sym::hash_to_i16) => sym::_pedersen64_hash_to_i16,
907 (sym::Pedersen64, sym::hash_to_i32) => sym::_pedersen64_hash_to_i32,
908 (sym::Pedersen64, sym::hash_to_i64) => sym::_pedersen64_hash_to_i64,
909 (sym::Pedersen64, sym::hash_to_i128) => sym::_pedersen64_hash_to_i128,
910 (sym::Pedersen64, sym::hash_to_u8) => sym::_pedersen64_hash_to_u8,
911 (sym::Pedersen64, sym::hash_to_u16) => sym::_pedersen64_hash_to_u16,
912 (sym::Pedersen64, sym::hash_to_u32) => sym::_pedersen64_hash_to_u32,
913 (sym::Pedersen64, sym::hash_to_u64) => sym::_pedersen64_hash_to_u64,
914 (sym::Pedersen64, sym::hash_to_u128) => sym::_pedersen64_hash_to_u128,
915 (sym::Pedersen64, sym::hash_to_scalar) => sym::_pedersen64_hash_to_scalar,
916 (sym::Pedersen64, sym::hash_to_address_raw) => sym::_pedersen64_hash_to_address_raw,
917 (sym::Pedersen64, sym::hash_to_field_raw) => sym::_pedersen64_hash_to_field_raw,
918 (sym::Pedersen64, sym::hash_to_group_raw) => sym::_pedersen64_hash_to_group_raw,
919 (sym::Pedersen64, sym::hash_to_i8_raw) => sym::_pedersen64_hash_to_i8_raw,
920 (sym::Pedersen64, sym::hash_to_i16_raw) => sym::_pedersen64_hash_to_i16_raw,
921 (sym::Pedersen64, sym::hash_to_i32_raw) => sym::_pedersen64_hash_to_i32_raw,
922 (sym::Pedersen64, sym::hash_to_i64_raw) => sym::_pedersen64_hash_to_i64_raw,
923 (sym::Pedersen64, sym::hash_to_i128_raw) => sym::_pedersen64_hash_to_i128_raw,
924 (sym::Pedersen64, sym::hash_to_u8_raw) => sym::_pedersen64_hash_to_u8_raw,
925 (sym::Pedersen64, sym::hash_to_u16_raw) => sym::_pedersen64_hash_to_u16_raw,
926 (sym::Pedersen64, sym::hash_to_u32_raw) => sym::_pedersen64_hash_to_u32_raw,
927 (sym::Pedersen64, sym::hash_to_u64_raw) => sym::_pedersen64_hash_to_u64_raw,
928 (sym::Pedersen64, sym::hash_to_u128_raw) => sym::_pedersen64_hash_to_u128_raw,
929 (sym::Pedersen64, sym::hash_to_scalar_raw) => sym::_pedersen64_hash_to_scalar_raw,
930
931 (sym::Pedersen128, sym::hash_to_address) => sym::_pedersen128_hash_to_address,
932 (sym::Pedersen128, sym::hash_to_field) => sym::_pedersen128_hash_to_field,
933 (sym::Pedersen128, sym::hash_to_group) => sym::_pedersen128_hash_to_group,
934 (sym::Pedersen128, sym::hash_to_i8) => sym::_pedersen128_hash_to_i8,
935 (sym::Pedersen128, sym::hash_to_i16) => sym::_pedersen128_hash_to_i16,
936 (sym::Pedersen128, sym::hash_to_i32) => sym::_pedersen128_hash_to_i32,
937 (sym::Pedersen128, sym::hash_to_i64) => sym::_pedersen128_hash_to_i64,
938 (sym::Pedersen128, sym::hash_to_i128) => sym::_pedersen128_hash_to_i128,
939 (sym::Pedersen128, sym::hash_to_u8) => sym::_pedersen128_hash_to_u8,
940 (sym::Pedersen128, sym::hash_to_u16) => sym::_pedersen128_hash_to_u16,
941 (sym::Pedersen128, sym::hash_to_u32) => sym::_pedersen128_hash_to_u32,
942 (sym::Pedersen128, sym::hash_to_u64) => sym::_pedersen128_hash_to_u64,
943 (sym::Pedersen128, sym::hash_to_u128) => sym::_pedersen128_hash_to_u128,
944 (sym::Pedersen128, sym::hash_to_scalar) => sym::_pedersen128_hash_to_scalar,
945 (sym::Pedersen128, sym::hash_to_address_raw) => sym::_pedersen128_hash_to_address_raw,
946 (sym::Pedersen128, sym::hash_to_field_raw) => sym::_pedersen128_hash_to_field_raw,
947 (sym::Pedersen128, sym::hash_to_group_raw) => sym::_pedersen128_hash_to_group_raw,
948 (sym::Pedersen128, sym::hash_to_i8_raw) => sym::_pedersen128_hash_to_i8_raw,
949 (sym::Pedersen128, sym::hash_to_i16_raw) => sym::_pedersen128_hash_to_i16_raw,
950 (sym::Pedersen128, sym::hash_to_i32_raw) => sym::_pedersen128_hash_to_i32_raw,
951 (sym::Pedersen128, sym::hash_to_i64_raw) => sym::_pedersen128_hash_to_i64_raw,
952 (sym::Pedersen128, sym::hash_to_i128_raw) => sym::_pedersen128_hash_to_i128_raw,
953 (sym::Pedersen128, sym::hash_to_u8_raw) => sym::_pedersen128_hash_to_u8_raw,
954 (sym::Pedersen128, sym::hash_to_u16_raw) => sym::_pedersen128_hash_to_u16_raw,
955 (sym::Pedersen128, sym::hash_to_u32_raw) => sym::_pedersen128_hash_to_u32_raw,
956 (sym::Pedersen128, sym::hash_to_u64_raw) => sym::_pedersen128_hash_to_u64_raw,
957 (sym::Pedersen128, sym::hash_to_u128_raw) => sym::_pedersen128_hash_to_u128_raw,
958 (sym::Pedersen128, sym::hash_to_scalar_raw) => sym::_pedersen128_hash_to_scalar_raw,
959
960 (sym::Poseidon2, sym::hash_to_address) => sym::_poseidon2_hash_to_address,
961 (sym::Poseidon2, sym::hash_to_field) => sym::_poseidon2_hash_to_field,
962 (sym::Poseidon2, sym::hash_to_group) => sym::_poseidon2_hash_to_group,
963 (sym::Poseidon2, sym::hash_to_i8) => sym::_poseidon2_hash_to_i8,
964 (sym::Poseidon2, sym::hash_to_i16) => sym::_poseidon2_hash_to_i16,
965 (sym::Poseidon2, sym::hash_to_i32) => sym::_poseidon2_hash_to_i32,
966 (sym::Poseidon2, sym::hash_to_i64) => sym::_poseidon2_hash_to_i64,
967 (sym::Poseidon2, sym::hash_to_i128) => sym::_poseidon2_hash_to_i128,
968 (sym::Poseidon2, sym::hash_to_u8) => sym::_poseidon2_hash_to_u8,
969 (sym::Poseidon2, sym::hash_to_u16) => sym::_poseidon2_hash_to_u16,
970 (sym::Poseidon2, sym::hash_to_u32) => sym::_poseidon2_hash_to_u32,
971 (sym::Poseidon2, sym::hash_to_u64) => sym::_poseidon2_hash_to_u64,
972 (sym::Poseidon2, sym::hash_to_u128) => sym::_poseidon2_hash_to_u128,
973 (sym::Poseidon2, sym::hash_to_scalar) => sym::_poseidon2_hash_to_scalar,
974 (sym::Poseidon2, sym::hash_to_address_raw) => sym::_poseidon2_hash_to_address_raw,
975 (sym::Poseidon2, sym::hash_to_field_raw) => sym::_poseidon2_hash_to_field_raw,
976 (sym::Poseidon2, sym::hash_to_group_raw) => sym::_poseidon2_hash_to_group_raw,
977 (sym::Poseidon2, sym::hash_to_i8_raw) => sym::_poseidon2_hash_to_i8_raw,
978 (sym::Poseidon2, sym::hash_to_i16_raw) => sym::_poseidon2_hash_to_i16_raw,
979 (sym::Poseidon2, sym::hash_to_i32_raw) => sym::_poseidon2_hash_to_i32_raw,
980 (sym::Poseidon2, sym::hash_to_i64_raw) => sym::_poseidon2_hash_to_i64_raw,
981 (sym::Poseidon2, sym::hash_to_i128_raw) => sym::_poseidon2_hash_to_i128_raw,
982 (sym::Poseidon2, sym::hash_to_u8_raw) => sym::_poseidon2_hash_to_u8_raw,
983 (sym::Poseidon2, sym::hash_to_u16_raw) => sym::_poseidon2_hash_to_u16_raw,
984 (sym::Poseidon2, sym::hash_to_u32_raw) => sym::_poseidon2_hash_to_u32_raw,
985 (sym::Poseidon2, sym::hash_to_u64_raw) => sym::_poseidon2_hash_to_u64_raw,
986 (sym::Poseidon2, sym::hash_to_u128_raw) => sym::_poseidon2_hash_to_u128_raw,
987 (sym::Poseidon2, sym::hash_to_scalar_raw) => sym::_poseidon2_hash_to_scalar_raw,
988
989 (sym::Poseidon4, sym::hash_to_address) => sym::_poseidon4_hash_to_address,
990 (sym::Poseidon4, sym::hash_to_field) => sym::_poseidon4_hash_to_field,
991 (sym::Poseidon4, sym::hash_to_group) => sym::_poseidon4_hash_to_group,
992 (sym::Poseidon4, sym::hash_to_i8) => sym::_poseidon4_hash_to_i8,
993 (sym::Poseidon4, sym::hash_to_i16) => sym::_poseidon4_hash_to_i16,
994 (sym::Poseidon4, sym::hash_to_i32) => sym::_poseidon4_hash_to_i32,
995 (sym::Poseidon4, sym::hash_to_i64) => sym::_poseidon4_hash_to_i64,
996 (sym::Poseidon4, sym::hash_to_i128) => sym::_poseidon4_hash_to_i128,
997 (sym::Poseidon4, sym::hash_to_u8) => sym::_poseidon4_hash_to_u8,
998 (sym::Poseidon4, sym::hash_to_u16) => sym::_poseidon4_hash_to_u16,
999 (sym::Poseidon4, sym::hash_to_u32) => sym::_poseidon4_hash_to_u32,
1000 (sym::Poseidon4, sym::hash_to_u64) => sym::_poseidon4_hash_to_u64,
1001 (sym::Poseidon4, sym::hash_to_u128) => sym::_poseidon4_hash_to_u128,
1002 (sym::Poseidon4, sym::hash_to_scalar) => sym::_poseidon4_hash_to_scalar,
1003 (sym::Poseidon4, sym::hash_to_address_raw) => sym::_poseidon4_hash_to_address_raw,
1004 (sym::Poseidon4, sym::hash_to_field_raw) => sym::_poseidon4_hash_to_field_raw,
1005 (sym::Poseidon4, sym::hash_to_group_raw) => sym::_poseidon4_hash_to_group_raw,
1006 (sym::Poseidon4, sym::hash_to_i8_raw) => sym::_poseidon4_hash_to_i8_raw,
1007 (sym::Poseidon4, sym::hash_to_i16_raw) => sym::_poseidon4_hash_to_i16_raw,
1008 (sym::Poseidon4, sym::hash_to_i32_raw) => sym::_poseidon4_hash_to_i32_raw,
1009 (sym::Poseidon4, sym::hash_to_i64_raw) => sym::_poseidon4_hash_to_i64_raw,
1010 (sym::Poseidon4, sym::hash_to_i128_raw) => sym::_poseidon4_hash_to_i128_raw,
1011 (sym::Poseidon4, sym::hash_to_u8_raw) => sym::_poseidon4_hash_to_u8_raw,
1012 (sym::Poseidon4, sym::hash_to_u16_raw) => sym::_poseidon4_hash_to_u16_raw,
1013 (sym::Poseidon4, sym::hash_to_u32_raw) => sym::_poseidon4_hash_to_u32_raw,
1014 (sym::Poseidon4, sym::hash_to_u64_raw) => sym::_poseidon4_hash_to_u64_raw,
1015 (sym::Poseidon4, sym::hash_to_u128_raw) => sym::_poseidon4_hash_to_u128_raw,
1016 (sym::Poseidon4, sym::hash_to_scalar_raw) => sym::_poseidon4_hash_to_scalar_raw,
1017
1018 (sym::Poseidon8, sym::hash_to_address) => sym::_poseidon8_hash_to_address,
1019 (sym::Poseidon8, sym::hash_to_field) => sym::_poseidon8_hash_to_field,
1020 (sym::Poseidon8, sym::hash_to_group) => sym::_poseidon8_hash_to_group,
1021 (sym::Poseidon8, sym::hash_to_i8) => sym::_poseidon8_hash_to_i8,
1022 (sym::Poseidon8, sym::hash_to_i16) => sym::_poseidon8_hash_to_i16,
1023 (sym::Poseidon8, sym::hash_to_i32) => sym::_poseidon8_hash_to_i32,
1024 (sym::Poseidon8, sym::hash_to_i64) => sym::_poseidon8_hash_to_i64,
1025 (sym::Poseidon8, sym::hash_to_i128) => sym::_poseidon8_hash_to_i128,
1026 (sym::Poseidon8, sym::hash_to_u8) => sym::_poseidon8_hash_to_u8,
1027 (sym::Poseidon8, sym::hash_to_u16) => sym::_poseidon8_hash_to_u16,
1028 (sym::Poseidon8, sym::hash_to_u32) => sym::_poseidon8_hash_to_u32,
1029 (sym::Poseidon8, sym::hash_to_u64) => sym::_poseidon8_hash_to_u64,
1030 (sym::Poseidon8, sym::hash_to_u128) => sym::_poseidon8_hash_to_u128,
1031 (sym::Poseidon8, sym::hash_to_scalar) => sym::_poseidon8_hash_to_scalar,
1032 (sym::Poseidon8, sym::hash_to_address_raw) => sym::_poseidon8_hash_to_address_raw,
1033 (sym::Poseidon8, sym::hash_to_field_raw) => sym::_poseidon8_hash_to_field_raw,
1034 (sym::Poseidon8, sym::hash_to_group_raw) => sym::_poseidon8_hash_to_group_raw,
1035 (sym::Poseidon8, sym::hash_to_i8_raw) => sym::_poseidon8_hash_to_i8_raw,
1036 (sym::Poseidon8, sym::hash_to_i16_raw) => sym::_poseidon8_hash_to_i16_raw,
1037 (sym::Poseidon8, sym::hash_to_i32_raw) => sym::_poseidon8_hash_to_i32_raw,
1038 (sym::Poseidon8, sym::hash_to_i64_raw) => sym::_poseidon8_hash_to_i64_raw,
1039 (sym::Poseidon8, sym::hash_to_i128_raw) => sym::_poseidon8_hash_to_i128_raw,
1040 (sym::Poseidon8, sym::hash_to_u8_raw) => sym::_poseidon8_hash_to_u8_raw,
1041 (sym::Poseidon8, sym::hash_to_u16_raw) => sym::_poseidon8_hash_to_u16_raw,
1042 (sym::Poseidon8, sym::hash_to_u32_raw) => sym::_poseidon8_hash_to_u32_raw,
1043 (sym::Poseidon8, sym::hash_to_u64_raw) => sym::_poseidon8_hash_to_u64_raw,
1044 (sym::Poseidon8, sym::hash_to_u128_raw) => sym::_poseidon8_hash_to_u128_raw,
1045 (sym::Poseidon8, sym::hash_to_scalar_raw) => sym::_poseidon8_hash_to_scalar_raw,
1046
1047 (sym::SHA3_256, sym::hash_to_address) => sym::_sha3_256_hash_to_address,
1048 (sym::SHA3_256, sym::hash_to_field) => sym::_sha3_256_hash_to_field,
1049 (sym::SHA3_256, sym::hash_to_group) => sym::_sha3_256_hash_to_group,
1050 (sym::SHA3_256, sym::hash_to_i8) => sym::_sha3_256_hash_to_i8,
1051 (sym::SHA3_256, sym::hash_to_i16) => sym::_sha3_256_hash_to_i16,
1052 (sym::SHA3_256, sym::hash_to_i32) => sym::_sha3_256_hash_to_i32,
1053 (sym::SHA3_256, sym::hash_to_i64) => sym::_sha3_256_hash_to_i64,
1054 (sym::SHA3_256, sym::hash_to_i128) => sym::_sha3_256_hash_to_i128,
1055 (sym::SHA3_256, sym::hash_to_u8) => sym::_sha3_256_hash_to_u8,
1056 (sym::SHA3_256, sym::hash_to_u16) => sym::_sha3_256_hash_to_u16,
1057 (sym::SHA3_256, sym::hash_to_u32) => sym::_sha3_256_hash_to_u32,
1058 (sym::SHA3_256, sym::hash_to_u64) => sym::_sha3_256_hash_to_u64,
1059 (sym::SHA3_256, sym::hash_to_u128) => sym::_sha3_256_hash_to_u128,
1060 (sym::SHA3_256, sym::hash_to_scalar) => sym::_sha3_256_hash_to_scalar,
1061 (sym::SHA3_256, sym::hash_to_address_raw) => sym::_sha3_256_hash_to_address_raw,
1062 (sym::SHA3_256, sym::hash_to_field_raw) => sym::_sha3_256_hash_to_field_raw,
1063 (sym::SHA3_256, sym::hash_to_group_raw) => sym::_sha3_256_hash_to_group_raw,
1064 (sym::SHA3_256, sym::hash_to_i8_raw) => sym::_sha3_256_hash_to_i8_raw,
1065 (sym::SHA3_256, sym::hash_to_i16_raw) => sym::_sha3_256_hash_to_i16_raw,
1066 (sym::SHA3_256, sym::hash_to_i32_raw) => sym::_sha3_256_hash_to_i32_raw,
1067 (sym::SHA3_256, sym::hash_to_i64_raw) => sym::_sha3_256_hash_to_i64_raw,
1068 (sym::SHA3_256, sym::hash_to_i128_raw) => sym::_sha3_256_hash_to_i128_raw,
1069 (sym::SHA3_256, sym::hash_to_u8_raw) => sym::_sha3_256_hash_to_u8_raw,
1070 (sym::SHA3_256, sym::hash_to_u16_raw) => sym::_sha3_256_hash_to_u16_raw,
1071 (sym::SHA3_256, sym::hash_to_u32_raw) => sym::_sha3_256_hash_to_u32_raw,
1072 (sym::SHA3_256, sym::hash_to_u64_raw) => sym::_sha3_256_hash_to_u64_raw,
1073 (sym::SHA3_256, sym::hash_to_u128_raw) => sym::_sha3_256_hash_to_u128_raw,
1074 (sym::SHA3_256, sym::hash_to_scalar_raw) => sym::_sha3_256_hash_to_scalar_raw,
1075 (sym::SHA3_256, sym::hash_to_bits) => sym::_sha3_256_hash_to_bits,
1076 (sym::SHA3_256, sym::hash_to_bits_raw) => sym::_sha3_256_hash_to_bits_raw,
1077
1078 (sym::SHA3_384, sym::hash_to_address) => sym::_sha3_384_hash_to_address,
1079 (sym::SHA3_384, sym::hash_to_field) => sym::_sha3_384_hash_to_field,
1080 (sym::SHA3_384, sym::hash_to_group) => sym::_sha3_384_hash_to_group,
1081 (sym::SHA3_384, sym::hash_to_i8) => sym::_sha3_384_hash_to_i8,
1082 (sym::SHA3_384, sym::hash_to_i16) => sym::_sha3_384_hash_to_i16,
1083 (sym::SHA3_384, sym::hash_to_i32) => sym::_sha3_384_hash_to_i32,
1084 (sym::SHA3_384, sym::hash_to_i64) => sym::_sha3_384_hash_to_i64,
1085 (sym::SHA3_384, sym::hash_to_i128) => sym::_sha3_384_hash_to_i128,
1086 (sym::SHA3_384, sym::hash_to_u8) => sym::_sha3_384_hash_to_u8,
1087 (sym::SHA3_384, sym::hash_to_u16) => sym::_sha3_384_hash_to_u16,
1088 (sym::SHA3_384, sym::hash_to_u32) => sym::_sha3_384_hash_to_u32,
1089 (sym::SHA3_384, sym::hash_to_u64) => sym::_sha3_384_hash_to_u64,
1090 (sym::SHA3_384, sym::hash_to_u128) => sym::_sha3_384_hash_to_u128,
1091 (sym::SHA3_384, sym::hash_to_scalar) => sym::_sha3_384_hash_to_scalar,
1092 (sym::SHA3_384, sym::hash_to_address_raw) => sym::_sha3_384_hash_to_address_raw,
1093 (sym::SHA3_384, sym::hash_to_field_raw) => sym::_sha3_384_hash_to_field_raw,
1094 (sym::SHA3_384, sym::hash_to_group_raw) => sym::_sha3_384_hash_to_group_raw,
1095 (sym::SHA3_384, sym::hash_to_i8_raw) => sym::_sha3_384_hash_to_i8_raw,
1096 (sym::SHA3_384, sym::hash_to_i16_raw) => sym::_sha3_384_hash_to_i16_raw,
1097 (sym::SHA3_384, sym::hash_to_i32_raw) => sym::_sha3_384_hash_to_i32_raw,
1098 (sym::SHA3_384, sym::hash_to_i64_raw) => sym::_sha3_384_hash_to_i64_raw,
1099 (sym::SHA3_384, sym::hash_to_i128_raw) => sym::_sha3_384_hash_to_i128_raw,
1100 (sym::SHA3_384, sym::hash_to_u8_raw) => sym::_sha3_384_hash_to_u8_raw,
1101 (sym::SHA3_384, sym::hash_to_u16_raw) => sym::_sha3_384_hash_to_u16_raw,
1102 (sym::SHA3_384, sym::hash_to_u32_raw) => sym::_sha3_384_hash_to_u32_raw,
1103 (sym::SHA3_384, sym::hash_to_u64_raw) => sym::_sha3_384_hash_to_u64_raw,
1104 (sym::SHA3_384, sym::hash_to_u128_raw) => sym::_sha3_384_hash_to_u128_raw,
1105 (sym::SHA3_384, sym::hash_to_scalar_raw) => sym::_sha3_384_hash_to_scalar_raw,
1106 (sym::SHA3_384, sym::hash_to_bits) => sym::_sha3_384_hash_to_bits,
1107 (sym::SHA3_384, sym::hash_to_bits_raw) => sym::_sha3_384_hash_to_bits_raw,
1108
1109 (sym::SHA3_512, sym::hash_to_address) => sym::_sha3_512_hash_to_address,
1110 (sym::SHA3_512, sym::hash_to_field) => sym::_sha3_512_hash_to_field,
1111 (sym::SHA3_512, sym::hash_to_group) => sym::_sha3_512_hash_to_group,
1112 (sym::SHA3_512, sym::hash_to_i8) => sym::_sha3_512_hash_to_i8,
1113 (sym::SHA3_512, sym::hash_to_i16) => sym::_sha3_512_hash_to_i16,
1114 (sym::SHA3_512, sym::hash_to_i32) => sym::_sha3_512_hash_to_i32,
1115 (sym::SHA3_512, sym::hash_to_i64) => sym::_sha3_512_hash_to_i64,
1116 (sym::SHA3_512, sym::hash_to_i128) => sym::_sha3_512_hash_to_i128,
1117 (sym::SHA3_512, sym::hash_to_u8) => sym::_sha3_512_hash_to_u8,
1118 (sym::SHA3_512, sym::hash_to_u16) => sym::_sha3_512_hash_to_u16,
1119 (sym::SHA3_512, sym::hash_to_u32) => sym::_sha3_512_hash_to_u32,
1120 (sym::SHA3_512, sym::hash_to_u64) => sym::_sha3_512_hash_to_u64,
1121 (sym::SHA3_512, sym::hash_to_u128) => sym::_sha3_512_hash_to_u128,
1122 (sym::SHA3_512, sym::hash_to_scalar) => sym::_sha3_512_hash_to_scalar,
1123 (sym::SHA3_512, sym::hash_to_address_raw) => sym::_sha3_512_hash_to_address_raw,
1124 (sym::SHA3_512, sym::hash_to_field_raw) => sym::_sha3_512_hash_to_field_raw,
1125 (sym::SHA3_512, sym::hash_to_group_raw) => sym::_sha3_512_hash_to_group_raw,
1126 (sym::SHA3_512, sym::hash_to_i8_raw) => sym::_sha3_512_hash_to_i8_raw,
1127 (sym::SHA3_512, sym::hash_to_i16_raw) => sym::_sha3_512_hash_to_i16_raw,
1128 (sym::SHA3_512, sym::hash_to_i32_raw) => sym::_sha3_512_hash_to_i32_raw,
1129 (sym::SHA3_512, sym::hash_to_i64_raw) => sym::_sha3_512_hash_to_i64_raw,
1130 (sym::SHA3_512, sym::hash_to_i128_raw) => sym::_sha3_512_hash_to_i128_raw,
1131 (sym::SHA3_512, sym::hash_to_u8_raw) => sym::_sha3_512_hash_to_u8_raw,
1132 (sym::SHA3_512, sym::hash_to_u16_raw) => sym::_sha3_512_hash_to_u16_raw,
1133 (sym::SHA3_512, sym::hash_to_u32_raw) => sym::_sha3_512_hash_to_u32_raw,
1134 (sym::SHA3_512, sym::hash_to_u64_raw) => sym::_sha3_512_hash_to_u64_raw,
1135 (sym::SHA3_512, sym::hash_to_u128_raw) => sym::_sha3_512_hash_to_u128_raw,
1136 (sym::SHA3_512, sym::hash_to_scalar_raw) => sym::_sha3_512_hash_to_scalar_raw,
1137 (sym::SHA3_512, sym::hash_to_bits) => sym::_sha3_512_hash_to_bits,
1138 (sym::SHA3_512, sym::hash_to_bits_raw) => sym::_sha3_512_hash_to_bits_raw,
1139
1140 (sym::ECDSA, sym::verify_digest) => sym::_ecdsa_verify_digest,
1141 (sym::ECDSA, sym::verify_digest_eth) => sym::_ecdsa_verify_digest_eth,
1142 (sym::ECDSA, sym::verify_keccak256) => sym::_ecdsa_verify_keccak256,
1143 (sym::ECDSA, sym::verify_keccak256_raw) => sym::_ecdsa_verify_keccak256_raw,
1144 (sym::ECDSA, sym::verify_keccak256_eth) => sym::_ecdsa_verify_keccak256_eth,
1145 (sym::ECDSA, sym::verify_keccak384) => sym::_ecdsa_verify_keccak384,
1146 (sym::ECDSA, sym::verify_keccak384_raw) => sym::_ecdsa_verify_keccak384_raw,
1147 (sym::ECDSA, sym::verify_keccak384_eth) => sym::_ecdsa_verify_keccak384_eth,
1148 (sym::ECDSA, sym::verify_keccak512) => sym::_ecdsa_verify_keccak512,
1149 (sym::ECDSA, sym::verify_keccak512_raw) => sym::_ecdsa_verify_keccak512_raw,
1150 (sym::ECDSA, sym::verify_keccak512_eth) => sym::_ecdsa_verify_keccak512_eth,
1151 (sym::ECDSA, sym::verify_sha3_256) => sym::_ecdsa_verify_sha3_256,
1152 (sym::ECDSA, sym::verify_sha3_256_raw) => sym::_ecdsa_verify_sha3_256_raw,
1153 (sym::ECDSA, sym::verify_sha3_256_eth) => sym::_ecdsa_verify_sha3_256_eth,
1154 (sym::ECDSA, sym::verify_sha3_384) => sym::_ecdsa_verify_sha3_384,
1155 (sym::ECDSA, sym::verify_sha3_384_raw) => sym::_ecdsa_verify_sha3_384_raw,
1156 (sym::ECDSA, sym::verify_sha3_384_eth) => sym::_ecdsa_verify_sha3_384_eth,
1157 (sym::ECDSA, sym::verify_sha3_512) => sym::_ecdsa_verify_sha3_512,
1158 (sym::ECDSA, sym::verify_sha3_512_raw) => sym::_ecdsa_verify_sha3_512_raw,
1159 (sym::ECDSA, sym::verify_sha3_512_eth) => sym::_ecdsa_verify_sha3_512_eth,
1160
1161 (_, sym::get) => Symbol::intern("__unresolved_get"),
1162 (_, sym::set) => Symbol::intern("__unresolved_set"),
1163
1164 (sym::Mapping, sym::get_or_use) => sym::_mapping_get_or_use,
1165 (sym::Mapping, sym::remove) => sym::_mapping_remove,
1166 (sym::Mapping, sym::contains) => sym::_mapping_contains,
1167
1168 (sym::Optional, sym::unwrap) => sym::_optional_unwrap,
1169 (sym::Optional, sym::unwrap_or) => sym::_optional_unwrap_or,
1170
1171 (sym::Vector, sym::push) => sym::_vector_push,
1172 (sym::Vector, sym::len) => sym::_vector_len,
1173 (sym::Vector, sym::clear) => sym::_vector_clear,
1174 (sym::Vector, sym::pop) => sym::_vector_pop,
1175 (sym::Vector, sym::swap_remove) => sym::_vector_swap_remove,
1176
1177 (sym::group, sym::to_x_coordinate) => sym::_group_to_x_coordinate,
1178 (sym::group, sym::to_y_coordinate) => sym::_group_to_y_coordinate,
1179
1180 (sym::ProgramCore, sym::checksum) => sym::_program_checksum,
1181 (sym::ProgramCore, sym::edition) => sym::_program_edition,
1182 (sym::ProgramCore, sym::program_owner) => sym::_program_owner,
1183
1184 (sym::signature, sym::verify) => sym::_signature_verify,
1185 (sym::Future, sym::Await) => sym::_future_await,
1186
1187 (sym::Serialize, sym::to_bits) => sym::_serialize_to_bits,
1188 (sym::Serialize, sym::to_bits_raw) => sym::_serialize_to_bits_raw,
1189
1190 (sym::CheatCode, sym::print_mapping) => sym::_cheat_code_print_mapping,
1191 (sym::CheatCode, sym::set_block_height) => sym::_cheat_code_set_block_height,
1192 (sym::CheatCode, sym::set_block_timestamp) => sym::_cheat_code_set_block_timestamp,
1193 (sym::CheatCode, sym::set_signer) => sym::_cheat_code_set_signer,
1194 _ => return None,
1195 })
1196 }
1197
1198 pub fn num_args(&self) -> usize {
1200 match self {
1201 Self::ChaChaRand(_) => 0,
1202 Self::GroupGen => 0,
1203 Self::SelfAddress => 0,
1204 Self::SelfCaller => 0,
1205 Self::SelfChecksum => 0,
1206 Self::SelfEdition => 0,
1207 Self::SelfId => 0,
1208 Self::SelfProgramOwner => 0,
1209 Self::SelfSigner => 0,
1210 Self::BlockHeight => 0,
1211 Self::BlockTimestamp => 0,
1212 Self::NetworkId => 0,
1213
1214 Self::Commit(_, _) => 2,
1215 Self::Hash(_, _) => 1,
1216 Self::ECDSAVerify(_) => 3,
1217
1218 Self::Get => 2,
1219 Self::Set => 3,
1220
1221 Self::MappingGetOrUse => 3,
1222 Self::MappingRemove => 2,
1223 Self::MappingContains => 2,
1224
1225 Self::OptionalUnwrap => 1,
1226 Self::OptionalUnwrapOr => 2,
1227
1228 Self::VectorPush => 2,
1229 Self::VectorLen => 1,
1230 Self::VectorClear => 1,
1231 Self::VectorPop => 1,
1232 Self::VectorSwapRemove => 2,
1233
1234 Self::GroupToXCoordinate => 1,
1235 Self::GroupToYCoordinate => 1,
1236
1237 Self::SignatureVerify => 3,
1238 Self::FutureAwait => 1,
1239
1240 Self::ProgramChecksum => 1,
1241 Self::ProgramEdition => 1,
1242 Self::ProgramOwner => 1,
1243
1244 Self::Serialize(_) => 1,
1245 Self::Deserialize(_, _) => 1,
1246
1247 Self::CheatCodePrintMapping => 1,
1248 Self::CheatCodeSetBlockHeight => 1,
1249 Self::CheatCodeSetBlockTimestamp => 1,
1250 Self::CheatCodeSetSigner => 1,
1251 }
1252 }
1253
1254 pub fn is_finalize_command(&self) -> bool {
1256 match self {
1257 Intrinsic::FutureAwait
1258 | Intrinsic::ChaChaRand(_)
1259 | Intrinsic::ECDSAVerify(_)
1260 | Intrinsic::Get
1261 | Intrinsic::MappingGetOrUse
1262 | Intrinsic::Set
1263 | Intrinsic::MappingRemove
1264 | Intrinsic::MappingContains
1265 | Intrinsic::ProgramChecksum
1266 | Intrinsic::ProgramEdition
1267 | Intrinsic::ProgramOwner
1268 | Intrinsic::VectorPush
1269 | Intrinsic::VectorLen
1270 | Intrinsic::VectorClear
1271 | Intrinsic::VectorPop
1272 | Intrinsic::VectorSwapRemove => true,
1273 Intrinsic::Commit(_, _)
1274 | Intrinsic::Hash(_, _)
1275 | Intrinsic::OptionalUnwrap
1276 | Intrinsic::OptionalUnwrapOr
1277 | Intrinsic::GroupToXCoordinate
1278 | Intrinsic::GroupToYCoordinate
1279 | Intrinsic::GroupGen
1280 | Intrinsic::SelfAddress
1281 | Intrinsic::SelfCaller
1282 | Intrinsic::SelfChecksum
1283 | Intrinsic::SelfEdition
1284 | Intrinsic::SelfId
1285 | Intrinsic::SelfProgramOwner
1286 | Intrinsic::SelfSigner
1287 | Intrinsic::BlockHeight
1288 | Intrinsic::BlockTimestamp
1289 | Intrinsic::NetworkId
1290 | Intrinsic::SignatureVerify
1291 | Intrinsic::Serialize(_)
1292 | Intrinsic::Deserialize(_, _)
1293 | Intrinsic::CheatCodePrintMapping
1294 | Intrinsic::CheatCodeSetBlockHeight
1295 | Intrinsic::CheatCodeSetBlockTimestamp
1296 | Intrinsic::CheatCodeSetSigner => false,
1297 }
1298 }
1299
1300 pub fn is_pure(&self) -> bool {
1302 match self {
1303 Intrinsic::FutureAwait
1304 | Intrinsic::Set
1305 | Intrinsic::VectorPush
1306 | Intrinsic::VectorClear
1307 | Intrinsic::CheatCodePrintMapping
1308 | Intrinsic::CheatCodeSetBlockHeight
1309 | Intrinsic::CheatCodeSetBlockTimestamp
1310 | Intrinsic::CheatCodeSetSigner
1311 | Intrinsic::VectorPop
1312 | Intrinsic::Hash(
1314 HashVariant::HashPED64
1315 | HashVariant::HashPED64Raw
1316 | HashVariant::HashPED128
1317 | HashVariant::HashPED128Raw,
1318 _,
1319 )
1320 | Intrinsic::MappingRemove
1322 | Intrinsic::Get | Intrinsic::MappingGetOrUse
1324 | Intrinsic::MappingContains
1325 | Intrinsic::VectorSwapRemove => false,
1326
1327 Intrinsic::ChaChaRand(_)
1328 | Intrinsic::ECDSAVerify(_)
1329 | Intrinsic::ProgramChecksum
1330 | Intrinsic::ProgramEdition
1331 | Intrinsic::ProgramOwner
1332 | Intrinsic::VectorLen
1333 | Intrinsic::Commit(_, _)
1334 | Intrinsic::Hash(_, _)
1335 | Intrinsic::OptionalUnwrap
1336 | Intrinsic::OptionalUnwrapOr
1337 | Intrinsic::GroupToXCoordinate
1338 | Intrinsic::GroupToYCoordinate
1339 | Intrinsic::GroupGen
1340 | Intrinsic::SelfAddress
1341 | Intrinsic::SelfCaller
1342 | Intrinsic::SelfChecksum
1343 | Intrinsic::SelfEdition
1344 | Intrinsic::SelfId
1345 | Intrinsic::SelfProgramOwner
1346 | Intrinsic::SelfSigner
1347 | Intrinsic::BlockHeight
1348 | Intrinsic::BlockTimestamp
1349 | Intrinsic::NetworkId
1350 | Intrinsic::SignatureVerify
1351 | Intrinsic::Serialize(_)
1352 | Intrinsic::Deserialize(_, _) => true,
1353 }
1354 }
1355}