factorio_ir/ast/
function.rs1use crate::ast::{block::Block, r#type::Type};
2use crate::meta::debug::FunctionDebug;
3
4#[derive(Debug, Clone, PartialEq, Eq)]
5pub struct Parameter {
6 pub name: String,
7 pub r#type: Type,
8 pub source_type: Option<String>,
9}
10
11#[derive(Debug, Clone, PartialEq, Eq)]
13pub struct ExportMeta {
14 pub interface: Option<String>,
17}
18
19#[derive(Debug, Clone, PartialEq)]
20pub struct Function {
21 pub name: String,
22 pub params: Vec<Parameter>,
23 pub body: Block,
24 pub doc: Option<String>,
25 pub debug: Option<FunctionDebug>,
26 pub event: Option<String>,
28 pub event_filter: Option<crate::expression::Expression>,
30 pub export: Option<ExportMeta>,
32 pub inline: bool,
35}