pub const COUNTER: &[&str] = &[
"シリーズ",
"シーズン",
"ページ",
"丁",
"両",
"人",
"代",
"件",
"体",
"例",
"俵",
"個",
"倍",
"児",
"具",
"冊",
"分",
"切",
"勝",
"匹",
"区",
"双",
"口",
"句",
"台",
"号",
"合",
"名",
"品",
"問",
"回",
"坪",
"基",
"場",
"夜",
"字",
"客",
"尾",
"局",
"巻",
"席",
"幅",
"幕",
"年",
"度",
"式",
"張",
"戸",
"才",
"折",
"振",
"挺",
"敗",
"文",
"斤",
"日",
"時",
"時間",
"晩",
"曲",
"月",
"服",
"本",
"束",
"条",
"杯",
"枚",
"架",
"柱",
"校",
"株",
"棹",
"機",
"歩",
"歳",
"段",
"段落",
"泊",
"滴",
"点",
"町",
"画",
"番",
"畳",
"発",
"着",
"礼",
"票",
"秒",
"種",
"稿",
"筆",
"箱",
"組",
"羽",
"脚",
"膳",
"艦",
"行",
"言",
"話",
"語",
"課",
"貫",
"足",
"軒",
"輪",
"通",
"通話",
"連",
"週",
"部",
"錠",
"門",
"階",
"面",
"頁",
"頭",
"首",
];
#[inline]
pub fn is_counter<I: AsRef<str>>(i: I) -> bool {
COUNTER.binary_search(&i.as_ref()).is_ok()
}
#[cfg(test)]
mod test {
use test_case::test_case;
use super::is_counter;
#[test_case("首", true)]
#[test_case("ページ", true)]
#[test_case("音楽", false)]
#[test_case("時間", true)]
#[test_case("", false)]
fn test_is_counter(s: &str, exp: bool) {
assert_eq!(is_counter(s), exp)
}
}