pub struct LibfuncSignature {
pub param_signatures: Vec<ParamSignature>,
pub branch_signatures: Vec<BranchSignature>,
pub fallthrough: Option<usize>,
}
Expand description
Represents the signature of a library function.
Fields§
§param_signatures: Vec<ParamSignature>
The parameter types and other information for the parameters for calling a library function.
branch_signatures: Vec<BranchSignature>
The output types and other information for the return values of a library function per branch.
fallthrough: Option<usize>
The index of the fallthrough branch of the library function if any.
Implementations§
source§impl LibfuncSignature
impl LibfuncSignature
sourcepub fn new_non_branch(
input_types: Vec<ConcreteTypeId>,
output_info: Vec<OutputVarInfo>,
ap_change: SierraApChange,
) -> Self
pub fn new_non_branch( input_types: Vec<ConcreteTypeId>, output_info: Vec<OutputVarInfo>, ap_change: SierraApChange, ) -> Self
Creates a non branch signature.
sourcepub fn new_non_branch_ex(
param_signatures: Vec<ParamSignature>,
output_info: Vec<OutputVarInfo>,
ap_change: SierraApChange,
) -> LibfuncSignature
pub fn new_non_branch_ex( param_signatures: Vec<ParamSignature>, output_info: Vec<OutputVarInfo>, ap_change: SierraApChange, ) -> LibfuncSignature
Same as LibfuncSignature::new_non_branch, except that more complicated ParamSignature are supported.
Auto Trait Implementations§
impl Freeze for LibfuncSignature
impl RefUnwindSafe for LibfuncSignature
impl Send for LibfuncSignature
impl Sync for LibfuncSignature
impl Unpin for LibfuncSignature
impl UnwindSafe for LibfuncSignature
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more