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