ParseModeExt docs

This commit is contained in:
AF 2023-07-30 14:20:29 +00:00
parent e4cb0bd416
commit 9a03e30e16

View File

@ -102,7 +102,9 @@ pub trait ParseMode {
type Mode: ?Sized + Mode;
}
/// Extension trait for all [`ParseMode`] types, re-exporting [`Mode`] traits.
pub trait ParseModeExt: ParseMode {
/// [`Mode::bind`].
fn bind<A0, A1, E, I>(
s: <Self::Mode as Mode>::ParseSuccess<A0, I>,
f: impl FnOnce(A0) -> Result<A1, E>,
@ -110,6 +112,7 @@ pub trait ParseModeExt: ParseMode {
<Self::Mode as Mode>::bind(s, f)
}
/// [`Mode::map`].
fn map<A0, A1, I>(
s: <Self::Mode as Mode>::ParseSuccess<A0, I>,
f: impl FnOnce(A0) -> A1,
@ -117,10 +120,12 @@ pub trait ParseModeExt: ParseMode {
<Self::Mode as Mode>::map(s, f)
}
/// [`Mode::seal`].
fn seal<A, I>(s: <Self::Mode as Mode>::ParseSuccess<A, I>) -> A {
<Self::Mode as Mode>::seal(s)
}
/// [`Mode::smap`].
fn smap<A0, A1>(
source: <Self::Mode as Mode>::ExtensionSource<A0>,
f: impl FnOnce(A0) -> A1,