tui: keybinds work?
Some checks are pending
/ build (push) Waiting to run

This commit is contained in:
🪞👃🪞 2025-08-10 01:14:26 +03:00
parent b52c1f5828
commit 24ac52d807
10 changed files with 238 additions and 203 deletions

View file

@ -12,24 +12,24 @@ pub trait FromDsl<T>: Sized {
}
/// `self` + [Dsl] -> `T`
pub trait DslInto<'s, T> {
fn dsl_into (&'s self, dsl: &impl Dsl) -> Perhaps<T>;
fn dsl_into_or (&'s self, dsl: &impl Dsl, err: Box<dyn Error>) -> Usually<T> {
pub trait DslInto<T> {
fn dsl_into (&self, dsl: &impl Dsl) -> Perhaps<T>;
fn dsl_into_or (&self, dsl: &impl Dsl, err: Box<dyn Error>) -> Usually<T> {
self.dsl_into(dsl)?.ok_or(err)
}
fn dsl_into_or_else (&'s self, dsl: &impl Dsl, err: impl Fn()->Box<dyn Error>) -> Usually<T> {
fn dsl_into_or_else (&self, dsl: &impl Dsl, err: impl Fn()->Box<dyn Error>) -> Usually<T> {
self.dsl_into(dsl)?.ok_or_else(err)
}
}
/// `self` + `T` -> [Dsl]
pub trait DslFrom<T> {
fn dsl_from (&self, dsl: &T) -> Perhaps<impl Dsl>;
fn dsl_from_or (&self, dsl: &T, err: Box<dyn Error>) -> Usually<impl Dsl> {
self.dsl_from(dsl)?.ok_or(err)
fn dsl_from (&self, val: &T) -> Perhaps<impl Dsl>;
fn dsl_from_or (&self, val: &T, err: Box<dyn Error>) -> Usually<impl Dsl> {
self.dsl_from(val)?.ok_or(err)
}
fn dsl_from_or_else (&self, dsl: &T, err: impl Fn()->Box<dyn Error>) -> Usually<impl Dsl> {
self.dsl_from(dsl)?.ok_or_else(err)
fn dsl_from_or_else (&self, val: &T, err: impl Fn()->Box<dyn Error>) -> Usually<impl Dsl> {
self.dsl_from(val)?.ok_or_else(err)
}
}
@ -44,14 +44,14 @@ pub trait IntoDsl<T> {
}
}
impl<'s, T: FromDsl<U>, U> DslInto<'s, T> for U {
fn dsl_into (&self, dsl: &impl Dsl) -> Perhaps<T> {
T::from_dsl(self, dsl)
}
}
//impl<'s, T: FromDsl<U>, U> DslInto<'s, T> for U {
//fn dsl_into (&self, dsl: &impl Dsl) -> Perhaps<T> {
//T::from_dsl(self, dsl)
//}
//}
impl<T: DslFrom<U>, U> IntoDsl<T> for U {
fn into_dsl (&self, state: &T) -> Perhaps<impl Dsl> {
T::dsl_from(state, self)
}
}
//impl<T: DslFrom<U>, U> IntoDsl<T> for U {
//fn into_dsl (&self, state: &T) -> Perhaps<impl Dsl> {
//T::dsl_from(state, self)
//}
//}