panic if shell desired as not impl
This commit is contained in:
83
src/tone.rs
83
src/tone.rs
@@ -20,27 +20,31 @@ impl Tone {
|
||||
let mut result = match captures.name("letter") {
|
||||
Some(letter) => Tone::char_to_middle_i32(letter.as_str()),
|
||||
None => match captures.name("major") {
|
||||
Some(major) => Tone::char_to_middle_i32(&major.as_str()[..1]) + match &major.as_str()[2..] {
|
||||
"0" => 0,
|
||||
"1" => 2,
|
||||
"2" => 4,
|
||||
"3" => 5,
|
||||
"4" => 7,
|
||||
"5" => 9,
|
||||
_ => 11,
|
||||
},
|
||||
Some(major) => {
|
||||
Tone::char_to_middle_i32(&major.as_str()[..1])
|
||||
+ match &major.as_str()[2..] {
|
||||
"0" => 0,
|
||||
"1" => 2,
|
||||
"2" => 4,
|
||||
"3" => 5,
|
||||
"4" => 7,
|
||||
"5" => 9,
|
||||
_ => 11,
|
||||
}
|
||||
}
|
||||
None => {
|
||||
let minor = captures.name("minor").unwrap();
|
||||
Tone::char_to_middle_i32(&minor.as_str()[..1]) + match &minor.as_str()[2..] {
|
||||
"0" => 0,
|
||||
"1" => 2,
|
||||
"2" => 3,
|
||||
"3" => 5,
|
||||
"4" => 7,
|
||||
"5" => 8,
|
||||
_ => 10,
|
||||
}
|
||||
},
|
||||
Tone::char_to_middle_i32(&minor.as_str()[..1])
|
||||
+ match &minor.as_str()[2..] {
|
||||
"0" => 0,
|
||||
"1" => 2,
|
||||
"2" => 3,
|
||||
"3" => 5,
|
||||
"4" => 7,
|
||||
"5" => 8,
|
||||
_ => 10,
|
||||
}
|
||||
}
|
||||
},
|
||||
} as i32;
|
||||
|
||||
@@ -85,23 +89,30 @@ impl Tone {
|
||||
|
||||
pub fn string(&self) -> String {
|
||||
let v = self.i32();
|
||||
let modifier = if v > 0 && v < 57 { "-" } else if v >= 69 { "+" } else { "" };
|
||||
modifier.to_string() + match v {
|
||||
45|57|69 => "a",
|
||||
46|58|70 => "a+",
|
||||
47|59|71 => "b",
|
||||
48|60|72 => "c",
|
||||
49|61|73 => "c+",
|
||||
50|62|74 => "d",
|
||||
51|63|75 => "d+",
|
||||
52|64|76 => "e",
|
||||
53|65|77 => "f",
|
||||
54|66|78 => "f+",
|
||||
55|67|79 => "g",
|
||||
56|68|80 => "g+",
|
||||
0 => " ",
|
||||
_ => "?",
|
||||
}
|
||||
let modifier = if v > 0 && v < 57 {
|
||||
"-"
|
||||
} else if v >= 69 {
|
||||
"+"
|
||||
} else {
|
||||
""
|
||||
};
|
||||
modifier.to_string()
|
||||
+ match v {
|
||||
45 | 57 | 69 => "a",
|
||||
46 | 58 | 70 => "a+",
|
||||
47 | 59 | 71 => "b",
|
||||
48 | 60 | 72 => "c",
|
||||
49 | 61 | 73 => "c+",
|
||||
50 | 62 | 74 => "d",
|
||||
51 | 63 | 75 => "d+",
|
||||
52 | 64 | 76 => "e",
|
||||
53 | 65 | 77 => "f",
|
||||
54 | 66 | 78 => "f+",
|
||||
55 | 67 | 79 => "g",
|
||||
56 | 68 | 80 => "g+",
|
||||
0 => " ",
|
||||
_ => "?",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user