get_count
This commit is contained in:
parent
61b8786dce
commit
3f679f2d54
1 changed files with 40 additions and 0 deletions
|
|
@ -2572,4 +2572,44 @@ impl Engine {
|
|||
}
|
||||
|
||||
pub fn check_gender(&self) -> &String { &self.the_gender }
|
||||
|
||||
fn get_count<T: Into<IntOrString>>(&self, count: Option<T>) -> i32 {
|
||||
if count.is_none() {
|
||||
if self.persistent_count.is_some() {
|
||||
return self.persistent_count.unwrap();
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
let c = count.unwrap().into();
|
||||
match c {
|
||||
IntOrString::Int(n) => return n,
|
||||
IntOrString::Str(s) => {
|
||||
if pl_count_one().contains(&s) ||
|
||||
(*self.classical_dict.get("zero").unwrap_or(&false) && pl_count_zero().contains(&s.to_lowercase())) {
|
||||
return 1;
|
||||
} else {
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enum IntOrString {
|
||||
Int(i32),
|
||||
Str(String),
|
||||
}
|
||||
|
||||
impl From<i32> for IntOrString {
|
||||
fn from(n: i32) -> Self { IntOrString::Int(n) }
|
||||
}
|
||||
|
||||
impl From<String> for IntOrString {
|
||||
fn from(s: String) -> Self { IntOrString::Str(s) }
|
||||
}
|
||||
|
||||
impl From<&str> for IntOrString {
|
||||
fn from(s: &str) -> Self { IntOrString::Str(s.to_string()) }
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue