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