pub struct Function {
pub is_template: bool,
pub function_generics: Vec<Type>,
pub type_generics: Vec<Type>,
/* private fields */
}
Fields§
§is_template: bool
§function_generics: Vec<Type>
§type_generics: Vec<Type>
Implementations§
Source§impl Function
impl Function
pub fn new( name: String, return_type: Type, args: Vec<VariableDeclaration>, body: Vec<StmtNode>, is_extern: bool, ) -> Self
pub fn name(&self) -> String
pub fn body(&self) -> &Vec<StmtNode>
pub fn mut_body(&mut self) -> &mut Vec<StmtNode>
pub fn args(&self) -> &Vec<VariableDeclaration>
pub fn args_mut(&mut self) -> &mut Vec<VariableDeclaration>
pub fn return_type(&self) -> &Type
pub fn with_function_generics(self, list: Vec<Type>) -> Self
pub fn with_vararg(self, is_vararg: bool) -> Self
pub fn is_vararg(&self) -> bool
pub fn set_vararg(&mut self, is_vararg: bool)
pub fn set_closure(&mut self, is_closure: bool)
pub fn with_extern(self, is_extern: bool) -> Self
pub fn with_template(self, is_template: bool) -> Self
pub fn add_function_generic(&mut self, g: Type)
pub fn args_count(&self) -> usize
pub fn has_binding(&self) -> bool
pub fn get_binding(&self) -> String
pub fn insert_arg(&mut self, index: usize, vd: VariableDeclaration)
pub fn set_binding_type(&mut self, binding_struct: impl Into<String>)
pub fn set_name(&mut self, name: String)
pub fn set_body(&mut self, body: Vec<StmtNode>)
pub fn with_return_type(self, return_type: Type) -> Self
pub fn set_return_type(&mut self, return_type: Type)
pub fn with_name(self, name: String) -> Self
pub fn with_args(self, args: Vec<VariableDeclaration>) -> Self
pub fn get_param_type(&self, index: usize) -> Option<Type>
pub fn get_type(&self) -> Type
pub fn set_template(&mut self, is_template: bool)
pub fn set_type_generics(&mut self, type_generics: Vec<Type>)
Sourcepub fn set_self_type(&mut self, self_type: SelfType)
pub fn set_self_type(&mut self, self_type: SelfType)
设置方法的self参数类型
Sourcepub fn with_self_type(self, self_type: SelfType) -> Self
pub fn with_self_type(self, self_type: SelfType) -> Self
链式设置方法的self参数类型
Trait Implementations§
Source§impl NodeTrait for Function
impl NodeTrait for Function
fn get_id(&self) -> &str
fn get_data(&self, key: &str) -> Option<Data>
fn set_data(&mut self, key: &str, value: Data)
fn get_children(&self) -> Vec<&dyn NodeTrait>
fn get_mut_children(&mut self) -> Vec<&mut dyn NodeTrait>
fn get_extra(&self) -> &HashMap<String, Box<dyn Any>>
Auto Trait Implementations§
impl Freeze for Function
impl RefUnwindSafe for Function
impl Send for Function
impl Sync for Function
impl Unpin for Function
impl UnwindSafe for Function
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