melodium_lang/semantic/
variability.rs1use melodium_common::descriptor::Variability as VariabilityDescriptor;
4use std::fmt;
5
6#[derive(Copy, Clone, PartialEq, Eq, Debug)]
8pub enum Variability {
9 Const,
11 Var,
13}
14
15impl Variability {
16 pub fn from_string(text: &str) -> Option<Self> {
17 match text {
18 "const" => Some(Self::Const),
19 "var" => Some(Self::Var),
20 _ => None,
21 }
22 }
23
24 pub fn to_descriptor(&self) -> VariabilityDescriptor {
25 match self {
26 Self::Const => VariabilityDescriptor::Const,
27 Self::Var => VariabilityDescriptor::Var,
28 }
29 }
30}
31
32impl fmt::Display for Variability {
33 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
34 write!(
35 f,
36 "{}",
37 match self {
38 Variability::Const => "const",
39 Variability::Var => "var",
40 }
41 )
42 }
43}