feat(predlozhnik): add rare exceptions for о/между
Change-Id: I17920dd9cd6e881ac0e3613a268e48fb05862c3c Reviewed-on: https://cl.tvl.fyi/c/depot/+/5997 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
This commit is contained in:
parent
15c9ff4902
commit
4a4f8f9358
1 changed files with 32 additions and 9 deletions
|
@ -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>
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue