Struct sway_core::language::ty::TyFunctionDecl
source · pub struct TyFunctionDecl {
pub name: Ident,
pub body: TyCodeBlock,
pub parameters: Vec<TyFunctionParameter>,
pub implementing_type: Option<TyDecl>,
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,
pub where_clause: Vec<(Ident, Vec<TraitConstraint>)>,
}
Fields§
§name: Ident
§body: TyCodeBlock
§parameters: Vec<TyFunctionParameter>
§implementing_type: Option<TyDecl>
§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
§where_clause: Vec<(Ident, Vec<TraitConstraint>)>
Implementations§
source§impl TyFunctionDecl
impl TyFunctionDecl
pub fn to_fn_selector_value_untruncated( &self, type_engine: &TypeEngine, decl_engine: &DeclEngine ) -> CompileResult<Vec<u8>>
sourcepub fn to_fn_selector_value(
&self,
type_engine: &TypeEngine,
decl_engine: &DeclEngine
) -> CompileResult<[u8; 4]>
pub fn to_fn_selector_value( &self, type_engine: &TypeEngine, decl_engine: &DeclEngine ) -> CompileResult<[u8; 4]>
Converts a TyFunctionDecl 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, decl_engine: &DeclEngine ) -> 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 TyFunctionDecl
impl TyFunctionDecl
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 TyFunctionDecl
impl Clone for TyFunctionDecl
source§fn clone(&self) -> TyFunctionDecl
fn clone(&self) -> TyFunctionDecl
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 TyFunctionDecl
impl Debug for TyFunctionDecl
source§impl DeclEngineGet<DeclId<TyFunctionDecl>, TyFunctionDecl> for DeclEngine
impl DeclEngineGet<DeclId<TyFunctionDecl>, TyFunctionDecl> for DeclEngine
fn get(&self, index: &DeclId<TyFunctionDecl>) -> TyFunctionDecl
source§impl DeclEngineGet<DeclRef<DeclId<TyFunctionDecl>>, TyFunctionDecl> for DeclEngine
impl DeclEngineGet<DeclRef<DeclId<TyFunctionDecl>>, TyFunctionDecl> for DeclEngine
fn get(&self, index: &DeclRef<DeclId<TyFunctionDecl>>) -> TyFunctionDecl
source§impl DeclEngineInsert<TyFunctionDecl> for DeclEngine
impl DeclEngineInsert<TyFunctionDecl> for DeclEngine
fn insert(&self, decl: TyFunctionDecl) -> DeclRef<DeclId<TyFunctionDecl>>
source§impl DeclEngineReplace<TyFunctionDecl> for DeclEngine
impl DeclEngineReplace<TyFunctionDecl> for DeclEngine
fn replace(&self, index: DeclId<TyFunctionDecl>, decl: TyFunctionDecl)
impl DeclEngineIndex<TyFunctionDecl> for DeclEngine
Auto Trait Implementations§
impl RefUnwindSafe for TyFunctionDecl
impl Send for TyFunctionDecl
impl Sync for TyFunctionDecl
impl Unpin for TyFunctionDecl
impl UnwindSafe for TyFunctionDecl
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.