[−][src]Trait manger::ConsumeSource
Trait that exposes some functions for easier consuming syntax on &str
.
ConsumeSource is only implemented for &str
.
Required methods
pub fn consume_lit<T: SelfConsumable>(
self,
literal: &T
) -> Result<Self, ConsumeError>
[src]
self,
literal: &T
) -> Result<Self, ConsumeError>
A shorthand for the consume_item
.
Here the source
is self
and the item
is literal
.
Examples
use manger::ConsumeSource; let source = "{42}"; let unconsumed = source.consume_lit(&'{')?; assert_eq!(unconsumed, "42}"); let (num, unconsumed) = unconsumed.consume::<u32>()?; assert_eq!(num, 42); assert_eq!(unconsumed, "}"); let unconsumed = unconsumed.consume_lit(&'}')?; assert_eq!(unconsumed, "");
pub fn consume<T: Consumable>(self) -> Result<(T, Self), ConsumeError>
[src]
A shorthand for the consume_from
.
Here the source
is self
. Returns how many utf-8 characters where consumed, when
succesful.
Examples
use manger::ConsumeSource; let source = "{42}"; let unconsumed = source.consume_lit(&'{')?; assert_eq!(unconsumed, "42}"); let (num, unconsumed) = unconsumed.consume::<u32>()?; assert_eq!(num, 42); assert_eq!(unconsumed, "}"); let unconsumed = unconsumed.consume_lit(&'}')?; assert_eq!(unconsumed, "");
pub fn mut_consume_lit<T: SelfConsumable>(
&mut self,
literal: &T
) -> Result<usize, ConsumeError>
[src]
&mut self,
literal: &T
) -> Result<usize, ConsumeError>
A shorthand for the consume_item
.
Here the source
is self
and the item
is literal
.
Will mutate source
to have the unconsumed part.
Examples
use manger::ConsumeSource; let mut source = "{42}"; source.mut_consume_lit(&'{')?; assert_eq!(source, "42}"); let num = source.mut_consume::<u32>()?; assert_eq!(num, 42); assert_eq!(source, "}"); source.mut_consume_lit(&'}')?; assert_eq!(source, "");
pub fn mut_consume<T: Consumable>(&mut self) -> Result<T, ConsumeError>
[src]
A shorthand for the consume_from
.
Here the source
is self
.
Will mutate source
to have the unconsumed part.
Examples
use manger::ConsumeSource; let mut source = "{42}"; source.mut_consume_lit(&'{')?; assert_eq!(source, "42}"); let num = source.mut_consume::<u32>()?; assert_eq!(num, 42); assert_eq!(source, "}"); source.mut_consume_lit(&'}')?; assert_eq!(source, "");
pub fn mut_consume_by<T: Consumable>(
&mut self
) -> Result<(T, usize), ConsumeError>
[src]
&mut self
) -> Result<(T, usize), ConsumeError>
A shorthand for the consume_how_many_from
.
Here the source
is self
.
Will mutate source
to have the unconsumed part.
Examples
use manger::ConsumeSource; let mut source = "{42}"; source.mut_consume_lit(&'{')?; assert_eq!(source, "42}"); let (num, amount) = source.mut_consume_by::<u32>()?; assert_eq!(num, 42); assert_eq!(amount, 2); assert_eq!(source, "}"); source.mut_consume_lit(&'}')?; assert_eq!(source, "");
Implementations on Foreign Types
impl<'s> ConsumeSource for &'s str
[src]
pub fn consume_lit<T: SelfConsumable>(
self,
item: &T
) -> Result<Self, ConsumeError>
[src]
self,
item: &T
) -> Result<Self, ConsumeError>
pub fn consume<T: Consumable>(self) -> Result<(T, Self), ConsumeError>
[src]
pub fn mut_consume<T: Consumable>(&mut self) -> Result<T, ConsumeError>
[src]
pub fn mut_consume_lit<T: SelfConsumable>(
&mut self,
literal: &T
) -> Result<usize, ConsumeError>
[src]
&mut self,
literal: &T
) -> Result<usize, ConsumeError>
pub fn mut_consume_by<T: Consumable>(
&mut self
) -> Result<(T, usize), ConsumeError>
[src]
&mut self
) -> Result<(T, usize), ConsumeError>