sp1_core_executor/
retain.rs1use serde::{Deserialize, Serialize};
2
3use crate::SyscallCode;
4
5#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
7#[non_exhaustive]
8pub enum RetainedEventsPreset {
9 Bls12381Field,
11 Bn254Field,
13 Sha256,
15 Poseidon2,
17 U256Ops,
19 Secp256k1,
21}
22
23impl RetainedEventsPreset {
24 #[must_use]
26 pub const fn syscall_codes(&self) -> &'static [SyscallCode] {
27 #[allow(clippy::enum_glob_use)]
28 use SyscallCode::*;
29 match self {
30 RetainedEventsPreset::Bls12381Field => {
31 &[BLS12381_FP_ADD, BLS12381_FP_MUL, BLS12381_FP_SUB]
32 }
33 RetainedEventsPreset::Bn254Field => &[BN254_FP_ADD, BN254_FP_MUL, BN254_FP_SUB],
34 RetainedEventsPreset::Sha256 => &[SHA_COMPRESS, SHA_EXTEND],
35 RetainedEventsPreset::Poseidon2 => &[POSEIDON2],
36 RetainedEventsPreset::U256Ops => &[UINT256_ADD_CARRY, UINT256_MUL_CARRY],
37 RetainedEventsPreset::Secp256k1 => {
38 &[SECP256K1_ADD, SECP256K1_DOUBLE, SECP256K1_DECOMPRESS]
39 }
40 }
41 }
42}