fastn_resolved/
variable.rs1#[derive(Debug, Clone, PartialEq, serde::Deserialize, serde::Serialize)]
2pub struct Variable {
3 pub name: String,
4 pub kind: fastn_resolved::KindData,
5 pub mutable: bool,
6 pub value: fastn_resolved::PropertyValue,
7 pub conditional_value: Vec<ConditionalValue>,
8 pub line_number: usize,
9 pub is_static: bool,
10}
11
12impl Variable {
13 pub fn is_static(&self) -> bool {
14 !self.mutable && self.is_static
15 }
16}
17
18#[derive(Debug, Clone, PartialEq, serde::Deserialize, serde::Serialize)]
19pub struct ConditionalValue {
20 pub condition: fastn_resolved::Expression,
21 pub value: fastn_resolved::PropertyValue,
22 pub line_number: usize,
23}
24
25impl ConditionalValue {
26 pub fn new(
27 condition: fastn_resolved::Expression,
28 value: fastn_resolved::PropertyValue,
29 line_number: usize,
30 ) -> ConditionalValue {
31 ConditionalValue {
32 condition,
33 value,
34 line_number,
35 }
36 }
37}