core, input: add flex_trait

This commit is contained in:
🪞👃🪞 2025-07-29 14:17:01 +03:00
parent 360b404b69
commit 8cbd7dd8e8
7 changed files with 201 additions and 98 deletions

View file

@ -1,5 +1,6 @@
//#![feature(adt_const_params)]
//#![feature(type_alias_impl_trait)]
#![feature(if_let_guard)]
#![feature(impl_trait_in_fn_trait_return)]
#![feature(const_precise_live_drops)]
extern crate const_panic;
@ -31,10 +32,6 @@ impl Dsl for std::sync::Arc<str> {
fn src (&self) -> &str { self.as_ref() }
}
impl<D: Dsl> Dsl for Option<D> {
fn src (&self) -> &str { if let Some(dsl) = self { dsl.src() } else { "" } }
}
impl<D: Dsl> Dsl for &D {
fn src (&self) -> &str { (*self).src() }
}
@ -43,6 +40,14 @@ impl<D: Dsl> Dsl for &mut D {
fn src (&self) -> &str { (**self).src() }
}
impl<D: Dsl> Dsl for std::sync::Arc<D> {
fn src (&self) -> &str { (*self).src() }
}
impl<D: Dsl> Dsl for Option<D> {
fn src (&self) -> &str { if let Some(dsl) = self { dsl.src() } else { "" } }
}
/// DSL-specific result type.
pub type DslResult<T> = Result<T, DslError>;