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: boolwhether 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.