[yaseenist] Julia :verified_trans: on Nostr: mmmmmmmmmm use higher_kinded_types::HKT; trait DynParser { type Output: HKT; fn ...
mmmmmmmmmm
use higher_kinded_types::HKT;
trait DynParser {
type Output: HKT;
fn dyn_parse<'a>(
&self,
input: &'a str,
chars: CharIndices<'a>,
state: &mut ParserState,
) -> Result<'a, <Self::Output as HKT>::__<'a>>;
}
impl<T> DynParser for T
where
T: Parser,
{
type Output = HKT!(<'a> = T::Output<'a>);
fn dyn_parse<'a>(
&self,
input: &'a str,
chars: CharIndices<'a>,
state: &mut ParserState,
) -> Result<'a, <Self::Output as HKT>::__<'a>> {
self.parse(input, chars, state)
}
}
use higher_kinded_types::HKT;
trait DynParser {
type Output: HKT;
fn dyn_parse<'a>(
&self,
input: &'a str,
chars: CharIndices<'a>,
state: &mut ParserState,
) -> Result<'a, <Self::Output as HKT>::__<'a>>;
}
impl<T> DynParser for T
where
T: Parser,
{
type Output = HKT!(<'a> = T::Output<'a>);
fn dyn_parse<'a>(
&self,
input: &'a str,
chars: CharIndices<'a>,
state: &mut ParserState,
) -> Result<'a, <Self::Output as HKT>::__<'a>> {
self.parse(input, chars, state)
}
}