Trait parsell::Consumer
[−]
[src]
pub trait Consumer<T> { fn accept(&mut self, value: T); }
A trait for consumers of data, typically buffers.
Examples
String
is a consumer of &str
and of char
.
let mut buffer = String::new(); buffer.accept("abc"); buffer.accept('d'); assert_eq!(buffer,"abcd");
Vec<T>
is a consumer of &[T]
when T
is Clone
, and of T
.
let mut buffer = Vec::new(); buffer.accept(&[1,2,3][..]); buffer.accept(4); assert_eq!(buffer,&[1,2,3,4]);
The unit type ()
is a trivial consumer that discards data.
let mut discarder = (); discarder.accept("this"); discarder.accept(4); assert_eq!(discarder,());
Required Methods
fn accept(&mut self, value: T)
Accepts data.
Implementors
impl<T> Consumer<T> for ()
impl Consumer<String> for String
impl<'a> Consumer<&'a str> for String
impl<'a> Consumer<Cow<'a, str>> for String
impl Consumer<char> for String
impl<'a> Consumer<String> for Cow<'a, str>
impl<'a> Consumer<&'a str> for Cow<'a, str>
impl<'a> Consumer<Cow<'a, str>> for Cow<'a, str>
impl<'a> Consumer<char> for Cow<'a, str>
impl<'a, T> Consumer<&'a [T]> for Vec<T> where
T: Clone,impl<T> Consumer<T> for Vec<T>
impl<C, T, E> Consumer<Result<T, E>> for Result<C, E> where
C: Consumer<T>,