diff options
author | Vincent Ambo <mail@tazj.in> | 2022-07-28T19·25+0300 |
---|---|---|
committer | tazjin <tazjin@tvl.su> | 2022-07-29T09·24+0000 |
commit | 4a4f8f93583df81344dd1c91f033d8644028dc85 (patch) | |
tree | 19538ae8a29bddd4bc62f5063409f28250968dc3 /users/tazjin/predlozhnik/src/main.rs | |
parent | 15c9ff49026f9ddbb42f663dfbc2668faa74cab2 (diff) |
feat(predlozhnik): add rare exceptions for о/между r/4343
Change-Id: I17920dd9cd6e881ac0e3613a268e48fb05862c3c Reviewed-on: https://cl.tvl.fyi/c/depot/+/5997 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
Diffstat (limited to 'users/tazjin/predlozhnik/src/main.rs')
-rw-r--r-- | users/tazjin/predlozhnik/src/main.rs | 41 |
1 files changed, 32 insertions, 9 deletions
diff --git a/users/tazjin/predlozhnik/src/main.rs b/users/tazjin/predlozhnik/src/main.rs index 74677129e768..8ced9b55f5de 100644 --- a/users/tazjin/predlozhnik/src/main.rs +++ b/users/tazjin/predlozhnik/src/main.rs @@ -106,15 +106,38 @@ lazy_static! { s }; - static ref EXCEPTIONS: HashMap<(&'static str, Падеж), &'static str> = { - use Падеж::*; +} - hashmap! { - ("в", Винительный) => "Во что? В кого?", - ("о", Винительный) => "О кого? Обо что? (редко используется)" +fn исключение(предлог: &str, падеж: Падеж) -> Option<Html> { + use Падеж::*; - } - }; + match (предлог, падеж) { + ("в", Винительный) => Some(html! {"Во что? В кого?"}), + + ("о", Винительный) => Some(html! { + <> + <p>{"О кого? Обо что?"}</p> + <p>{"Редко используется. Например:"}</p> + <ul> + <li>{"Удариться о притолоку."}</li> + <li>{"точить о камень."}</li> + </ul> + </> + }), + + ("между", Родительный) => Some(html! { + <> + <p>{"Между чего? Между кого?"}</p> + <p>{"Редко используется. Например:"}</p> + <ul> + <li>{"Читаю между строк."}</li> + <li>{"Между людей установился мир."}</li> + </ul> + </> + }), + + _ => None, + } } enum Сообщение { @@ -135,7 +158,7 @@ struct Вывод { } fn объясни(падеж: Падеж, предлог: &str) -> Html { - let exp = match EXCEPTIONS.get(&(предлог, падеж)) { + let иск = match исключение(предлог, падеж) { Some(exp) => html! { exp }, None => html! { format!("{} {}", предлог, падеж.вопрос()) }, }; @@ -144,7 +167,7 @@ fn объясни(падеж: Падеж, предлог: &str) -> Html { <div id="obyasnenie"> <hr/> <h2>{"Пример:"}</h2> - {exp} + {иск} </div> } } |