use super::{Decided, Verdict, misplaced};
use crate::render::Form;
use crate::verbs::doors::{CEILING, Door, PRICE};
pub(super) fn price(provider: &str, model: &str, words: &[&str], form: Form) -> Decided {
match crate::verbs::prices::rates(words) {
Ok(rates) => Decided::Fanned(
crate::verbs::price(provider.to_owned(), model.to_owned(), rates),
form,
),
Err(why) => refused(&PRICE, why, words),
}
}
pub(super) fn ceiling(word: &str, form: Form) -> Decided {
match crate::verbs::prices::bound(word) {
Ok(usd) => Decided::Fanned(crate::verbs::ceiling(usd), form),
Err(why) => refused(&CEILING, why, &[word]),
}
}
fn refused(door: &Door, why: String, words: &[&str]) -> Decided {
Decided::Say(Verdict::refused(misplaced(
format!("`lernie {}`: {why} — usage: {}", door.word, door.usage()),
words,
)))
}