ligen_ir/function/
method.rs

1use crate::prelude::*;
2use crate::{Synchrony, Attributes, Mutability, Parameter, Type, Visibility, Identifier};
3
4/// Method structure.
5#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
6pub struct Method {
7    /// Attributes field.
8    pub attributes: Attributes,
9    /// The owner mutability.
10    pub mutability: Mutability,
11    /// Visibility field.
12    pub visibility: Visibility,
13    /// Synchrony field.
14    pub synchrony: Synchrony,
15    /// Method's identifier.
16    pub identifier: Identifier,
17    /// Inputs field.
18    pub inputs: Vec<Parameter>,
19    /// Output field.
20    pub output: Option<Type>,
21}
22
23impl CountSymbols for &Vec<Method> {
24    fn count_symbols(&self) -> usize {
25        self.len()
26    }
27}
28
29impl CountSymbols for Vec<Method> {
30    fn count_symbols(&self) -> usize {
31        self.len()
32    }
33}