Skip to main content

chord_progression_parser/model/
key.rs

1use serde::{Deserialize, Serialize};
2use strum_macros::EnumString;
3use typeshare::typeshare;
4
5#[typeshare]
6#[allow(non_camel_case_types)]
7#[derive(Debug, PartialEq, Clone, EnumString, Serialize, Deserialize)]
8pub enum Key {
9    #[strum(serialize = "Cb")]
10    #[serde(rename = "Cb")]
11    Cb_M, //C flat major
12    #[strum(serialize = "Cbm")]
13    #[serde(rename = "Cbm")]
14    Cb_m, //C flat minor
15    #[strum(serialize = "C")]
16    #[serde(rename = "C")]
17    C_M, //C major
18    #[strum(serialize = "Cm")]
19    #[serde(rename = "Cm")]
20    C_m, //C minor
21    #[strum(serialize = "C#")]
22    #[serde(rename = "C#")]
23    Cs_M, //C sharp major
24    #[strum(serialize = "C#m")]
25    #[serde(rename = "C#m")]
26    Cs_m, //C sharp minor
27    #[strum(serialize = "Db")]
28    #[serde(rename = "Db")]
29    Db_M,
30    #[strum(serialize = "Dbm")]
31    #[serde(rename = "Dbm")]
32    Db_m,
33    #[strum(serialize = "D")]
34    #[serde(rename = "D")]
35    D_M,
36    #[strum(serialize = "Dm")]
37    #[serde(rename = "Dm")]
38    D_m,
39    #[strum(serialize = "D#")]
40    #[serde(rename = "D#")]
41    Ds_M,
42    #[strum(serialize = "D#m")]
43    #[serde(rename = "D#m")]
44    Ds_m,
45    #[strum(serialize = "Eb")]
46    #[serde(rename = "Eb")]
47    Eb_M,
48    #[strum(serialize = "Ebm")]
49    #[serde(rename = "Ebm")]
50    Eb_m,
51    #[strum(serialize = "E")]
52    #[serde(rename = "E")]
53    E_M,
54    #[strum(serialize = "Em")]
55    #[serde(rename = "Em")]
56    E_m,
57    #[strum(serialize = "E#")]
58    #[serde(rename = "E#")]
59    Fb_M,
60    #[strum(serialize = "E#m")]
61    #[serde(rename = "E#m")]
62    Fb_m,
63    #[strum(serialize = "F")]
64    #[serde(rename = "F")]
65    F_M,
66    #[strum(serialize = "Fm")]
67    #[serde(rename = "Fm")]
68    F_m,
69    #[strum(serialize = "F#")]
70    #[serde(rename = "F#")]
71    Fs_M,
72    #[strum(serialize = "F#m")]
73    #[serde(rename = "F#m")]
74    Fs_m,
75    #[strum(serialize = "Gb")]
76    #[serde(rename = "Gb")]
77    Gb_M,
78    #[strum(serialize = "Gbm")]
79    #[serde(rename = "Gbm")]
80    Gb_m,
81    #[strum(serialize = "G")]
82    #[serde(rename = "G")]
83    G_M,
84    #[strum(serialize = "Gm")]
85    #[serde(rename = "Gm")]
86    G_m,
87    #[strum(serialize = "G#")]
88    #[serde(rename = "G#")]
89    Gs_M,
90    #[strum(serialize = "G#m")]
91    #[serde(rename = "G#m")]
92    Gs_m,
93    #[strum(serialize = "Ab")]
94    #[serde(rename = "Ab")]
95    Ab_M,
96    #[strum(serialize = "Abm")]
97    #[serde(rename = "Abm")]
98    Ab_m,
99    #[strum(serialize = "A")]
100    #[serde(rename = "A")]
101    A_M,
102    #[strum(serialize = "Am")]
103    #[serde(rename = "Am")]
104    A_m,
105    #[strum(serialize = "A#")]
106    #[serde(rename = "A#")]
107    As_M,
108    #[strum(serialize = "A#m")]
109    #[serde(rename = "A#m")]
110    As_m,
111    #[strum(serialize = "Bb")]
112    #[serde(rename = "Bb")]
113    Bb_M,
114    #[strum(serialize = "Bbm")]
115    #[serde(rename = "Bbm")]
116    Bb_m,
117    #[strum(serialize = "B")]
118    #[serde(rename = "B")]
119    B_M,
120    #[strum(serialize = "Bm")]
121    #[serde(rename = "Bm")]
122    B_m,
123    #[strum(serialize = "?")]
124    #[serde(rename = "?")]
125    UnIdentified,
126}