Skip to main content

melodium_share/
variability.rs

1use melodium_common::descriptor::Variability as CommonVariability;
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
5#[serde(rename_all = "snake_case")]
6#[cfg_attr(feature = "webassembly", derive(tsify::Tsify))]
7#[cfg_attr(feature = "webassembly", tsify(into_wasm_abi, from_wasm_abi))]
8pub enum Variability {
9    Const,
10    Var,
11}
12
13impl Into<CommonVariability> for Variability {
14    fn into(self) -> CommonVariability {
15        match self {
16            Variability::Const => CommonVariability::Const,
17            Variability::Var => CommonVariability::Var,
18        }
19    }
20}
21
22impl Into<CommonVariability> for &Variability {
23    fn into(self) -> CommonVariability {
24        match self {
25            Variability::Const => CommonVariability::Const,
26            Variability::Var => CommonVariability::Var,
27        }
28    }
29}
30
31impl From<&CommonVariability> for Variability {
32    fn from(value: &CommonVariability) -> Self {
33        match value {
34            CommonVariability::Const => Variability::Const,
35            CommonVariability::Var => Variability::Var,
36        }
37    }
38}