cairo_lang_sierra/extensions/modules/
unconditional_jump.rs

1use crate::extensions::lib_func::{
2    BranchSignature, LibfuncSignature, SierraApChange, SignatureSpecializationContext,
3};
4use crate::extensions::{NoGenericArgsGenericLibfunc, SpecializationError};
5
6#[derive(Default)]
7pub struct UnconditionalJumpLibfunc {}
8impl NoGenericArgsGenericLibfunc for UnconditionalJumpLibfunc {
9    const STR_ID: &'static str = "jump";
10
11    fn specialize_signature(
12        &self,
13        _context: &dyn SignatureSpecializationContext,
14    ) -> Result<LibfuncSignature, SpecializationError> {
15        Ok(LibfuncSignature {
16            param_signatures: vec![],
17            branch_signatures: vec![BranchSignature {
18                vars: vec![],
19                ap_change: SierraApChange::Known { new_vars_only: true },
20            }],
21            fallthrough: None,
22        })
23    }
24}