xenon_codegen/
variable_assignment.rs

1use super::{expression::Expression, identifier::Identifier};
2
3#[derive(Clone, Default)]
4pub struct VariableAssignment {
5    pub name: Identifier,
6    pub operator: String,
7    pub value: Expression
8}
9impl VariableAssignment {
10    pub fn new(name: Identifier, operator: String, value: Expression) -> VariableAssignment {
11        return VariableAssignment {
12            name,
13            operator,
14            value
15        };
16    }
17
18    pub fn is_valid(&self) -> bool {
19        if !self.name.is_valid() {
20            return false;
21        }
22
23        if !["+=", "-=", "*=", "/=", "="].contains(&self.operator.as_str()) {
24            return false;
25        }
26
27        return self.value.is_valid();
28    }
29}