Trait cairo_lang_sierra::extensions::lib_func::NamedLibfunc
source · pub trait NamedLibfunc: Default {
type Concrete: ConcreteLibfunc;
const STR_ID: &'static str;
// Required methods
fn specialize_signature(
&self,
context: &dyn SignatureSpecializationContext,
args: &[GenericArg]
) -> Result<LibfuncSignature, SpecializationError>;
fn specialize(
&self,
context: &dyn SpecializationContext,
args: &[GenericArg]
) -> Result<Self::Concrete, SpecializationError>;
}
Expand description
Trait for implementing a specialization generator with a simple id.
Required Associated Types§
Required Associated Constants§
Required Methods§
sourcefn specialize_signature(
&self,
context: &dyn SignatureSpecializationContext,
args: &[GenericArg]
) -> Result<LibfuncSignature, SpecializationError>
fn specialize_signature( &self, context: &dyn SignatureSpecializationContext, args: &[GenericArg] ) -> Result<LibfuncSignature, SpecializationError>
Creates the specialization of the libfunc’s signature with the template arguments.
sourcefn specialize(
&self,
context: &dyn SpecializationContext,
args: &[GenericArg]
) -> Result<Self::Concrete, SpecializationError>
fn specialize( &self, context: &dyn SpecializationContext, args: &[GenericArg] ) -> Result<Self::Concrete, SpecializationError>
Creates the specialization with the template arguments.
Object Safety§
This trait is not object safe.