pub struct Parsed<'a> { /* private fields */ }
Expand description
Fully parsed Message instead of parsing on demand. Instead of zero-allocation this struct implements zero-copy parsing.
Implements a partially or fully parsed message.
Doesn’t implement the [std::convert::FromStr] trait as its lifetime depends on its source string.
Implementations§
Source§impl<'a> Parsed<'a>
impl<'a> Parsed<'a>
pub fn command(&self) -> Option<&'a str>
pub fn prefix(&self) -> Option<&Prefix<'a>>
pub fn params(&self) -> impl Iterator<Item = &Option<&'a str>>
pub fn tag(&self, key: &str) -> Option<&'a str>
Sourcepub fn param(&self, index: usize) -> Option<&'a str>
pub fn param(&self, index: usize) -> Option<&'a str>
Returns a param with given original index. If the Parsed instance represents a partially parsed message the original index will preserve.
§Usage
use irc_rust::Message;
// A fully parsed message
use irc_rust::tokenizer::PartialCfg;
let message = Message::from("CMD param0 param1 param2");
let parsed = message.parse()?;
assert_eq!(Some("param0"), parsed.param(0));
assert_eq!(Some("param1"), parsed.param(1));
assert_eq!(Some("param2"), parsed.param(2));
// A partially parsed message preserves the original index
let message = Message::from("CMD param0 param1 param2");
let partial = message.parse_partial(PartialCfg {
params: vec![1],
..Default::default()
})?;
assert_eq!(None, partial.param(0));
assert_eq!(Some("param1"), partial.param(1));
assert_eq!(None, partial.param(2));
pub fn trailing(&self) -> Option<&'a str>
pub fn prefix_name(&self) -> Option<&'a str>
pub fn prefix_user(&self) -> Option<&'a str>
pub fn prefix_host(&self) -> Option<&'a str>
Trait Implementations§
impl<'a> Eq for Parsed<'a>
impl<'a> StructuralPartialEq for Parsed<'a>
Auto Trait Implementations§
impl<'a> Freeze for Parsed<'a>
impl<'a> RefUnwindSafe for Parsed<'a>
impl<'a> Send for Parsed<'a>
impl<'a> Sync for Parsed<'a>
impl<'a> Unpin for Parsed<'a>
impl<'a> UnwindSafe for Parsed<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more