fastn_resolved/
function.rs1#[derive(Debug, Clone, PartialEq, serde::Deserialize, serde::Serialize)]
2pub struct Function {
3 pub name: String,
4 pub return_kind: fastn_resolved::KindData,
5 pub arguments: Vec<fastn_resolved::Argument>,
6 pub expression: Vec<fastn_resolved::FunctionExpression>,
7 pub js: Option<fastn_resolved::PropertyValue>,
8 pub line_number: usize,
9 pub external_implementation: bool,
10}
11
12impl Function {
13 pub fn new(
14 name: &str,
15 return_kind: fastn_resolved::KindData,
16 arguments: Vec<fastn_resolved::Argument>,
17 expression: Vec<fastn_resolved::FunctionExpression>,
18 js: Option<fastn_resolved::PropertyValue>,
19 line_number: usize,
20 ) -> Function {
21 Function {
22 name: name.to_string(),
23 return_kind,
24 arguments,
25 expression,
26 js,
27 line_number,
28 external_implementation: false,
29 }
30 }
31}
32
33#[derive(Debug, Clone, PartialEq, serde::Deserialize, serde::Serialize)]
34pub struct FunctionCall {
35 pub name: String,
36 pub kind: fastn_resolved::KindData,
37 pub is_mutable: bool,
38 pub line_number: usize,
39 pub values: fastn_resolved::Map<fastn_resolved::PropertyValue>,
40 pub order: Vec<String>,
41 pub module_name: Option<(String, String)>,
43}
44
45impl FunctionCall {
46 pub fn new(
47 name: &str,
48 kind: fastn_resolved::KindData,
49 is_mutable: bool,
50 line_number: usize,
51 values: fastn_resolved::Map<fastn_resolved::PropertyValue>,
52 order: Vec<String>,
53 module_name: Option<(String, String)>,
54 ) -> FunctionCall {
55 FunctionCall {
56 name: name.to_string(),
57 kind,
58 is_mutable,
59 line_number,
60 values,
61 order,
62 module_name,
63 }
64 }
65}
66
67#[derive(Debug, Clone, PartialEq, serde::Deserialize, serde::Serialize)]
68pub struct FunctionExpression {
69 pub expression: String,
70 pub line_number: usize,
71}