fastn_resolved/
variable.rs

1#[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}