Struct sway_core::language::ty::TyFunctionDeclaration
source · pub struct TyFunctionDeclaration {
pub name: Ident,
pub body: TyCodeBlock,
pub parameters: Vec<TyFunctionParameter>,
pub implementing_type: Option<TyDeclaration>,
pub span: Span,
pub attributes: AttributesMap,
pub type_parameters: Vec<TypeParameter>,
pub return_type: TypeArgument,
pub visibility: Visibility,
pub is_contract_call: bool,
pub purity: Purity,
}
Fields§
§name: Ident
§body: TyCodeBlock
§parameters: Vec<TyFunctionParameter>
§implementing_type: Option<TyDeclaration>
§span: Span
§attributes: AttributesMap
§type_parameters: Vec<TypeParameter>
§return_type: TypeArgument
§visibility: Visibility
§is_contract_call: bool
whether this function exists in another contract and requires a call to it or not
purity: Purity
Implementations§
source§impl TyFunctionDeclaration
impl TyFunctionDeclaration
pub fn to_fn_selector_value_untruncated( &self, type_engine: &TypeEngine ) -> CompileResult<Vec<u8>>
sourcepub fn to_fn_selector_value(
&self,
type_engine: &TypeEngine
) -> CompileResult<[u8; 4]>
pub fn to_fn_selector_value( &self, type_engine: &TypeEngine ) -> CompileResult<[u8; 4]>
Converts a TyFunctionDeclaration into a value that is to be used in contract function selectors. Hashes the name and parameters using SHA256, and then truncates to four bytes.
pub fn to_selector_name(&self, type_engine: &TypeEngine) -> CompileResult<String>
sourcepub fn is_main_entry(&self) -> bool
pub fn is_main_entry(&self) -> bool
Whether or not this function is the default entry point.
sourcepub fn is_test(&self) -> bool
pub fn is_test(&self) -> bool
Whether or not this function is a unit test, i.e. decorated with #[test]
.
pub fn inline(&self) -> Option<Inline>
source§impl TyFunctionDeclaration
impl TyFunctionDeclaration
pub fn type_check( ctx: TypeCheckContext<'_>, fn_decl: FunctionDeclaration, is_method: bool, is_in_impl_self: bool ) -> CompileResult<Self>
Trait Implementations§
source§impl Clone for TyFunctionDeclaration
impl Clone for TyFunctionDeclaration
source§fn clone(&self) -> TyFunctionDeclaration
fn clone(&self) -> TyFunctionDeclaration
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for TyFunctionDeclaration
impl Debug for TyFunctionDeclaration
source§impl From<TyFunctionDeclaration> for (Ident, DeclWrapper, Span)
impl From<TyFunctionDeclaration> for (Ident, DeclWrapper, Span)
source§fn from(value: TyFunctionDeclaration) -> Self
fn from(value: TyFunctionDeclaration) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl RefUnwindSafe for TyFunctionDeclaration
impl Send for TyFunctionDeclaration
impl Sync for TyFunctionDeclaration
impl Unpin for TyFunctionDeclaration
impl UnwindSafe for TyFunctionDeclaration
Blanket Implementations§
source§impl<T> AnyDebug for Twhere
T: Any + Debug,
impl<T> AnyDebug for Twhere T: Any + Debug,
source§fn as_any_ref(&self) -> &(dyn Any + 'static)
fn as_any_ref(&self) -> &(dyn Any + 'static)
Returns a reference to the underlying type as
Any
.§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.