pub struct Tokenizer<'a, T: State> { /* private fields */ }
Expand description
Implements a Parser of IRC Messages as described in IRCv3 and RFC 1459.
The tokenizer implements both phases of a parser: Lexical and syntactical analysis. This is required as it implements a Zero-allocation parser which is not allocating anything on the heap and returns the next element based on its state.
Transitions between states are implemented with methods Tokenizer::tags, Tokenizer::prefix, Tokenizer::command, Tokenizer::params and Tokenizer::trailing. Based on the state different parts of the message can be parsed. If some parts of the message are not needed they are skipped by calling the wanted state transition method.
Implementations§
Source§impl<'a> Tokenizer<'a, Start>
impl<'a> Tokenizer<'a, Start>
pub fn new(raw: &'a str) -> Result<Self, ParserError>
pub fn parse_partial( self, cfg: PartialCfg<'a>, ) -> Result<Parsed<'a>, ParserError>
pub fn prefix(self) -> Tokenizer<'a, PrefixState>
pub fn command(self) -> Tokenizer<'a, CommandState>
pub fn params(self) -> Tokenizer<'a, ParamsState>
pub fn trailing(self) -> Tokenizer<'a, TrailingState>
Source§impl<'a> Tokenizer<'a, TagsState>
impl<'a> Tokenizer<'a, TagsState>
pub fn as_iter(&mut self) -> IntoTagsIter<'a> ⓘ
pub fn prefix(self) -> Tokenizer<'a, PrefixState>
pub fn command(self) -> Tokenizer<'a, CommandState>
pub fn params(self) -> Tokenizer<'a, ParamsState>
pub fn trailing(self) -> Tokenizer<'a, TrailingState>
Source§impl<'a> Tokenizer<'a, PrefixState>
impl<'a> Tokenizer<'a, PrefixState>
pub fn name(&mut self) -> Result<Option<&'a str>, ParserError>
pub fn user(&mut self) -> Result<Option<&'a str>, ParserError>
pub fn host(&mut self) -> Result<Option<&'a str>, ParserError>
Sourcepub fn parts(&mut self) -> Result<Option<Prefix<'a>>, ParserError>
pub fn parts(&mut self) -> Result<Option<Prefix<'a>>, ParserError>
Returns None if the prefix is badly formatted or no prefix is present.
pub fn command(self) -> Tokenizer<'a, CommandState>
pub fn params(self) -> Tokenizer<'a, ParamsState>
pub fn trailing(self) -> Tokenizer<'a, TrailingState>
Source§impl<'a> Tokenizer<'a, CommandState>
impl<'a> Tokenizer<'a, CommandState>
pub fn command(&mut self) -> Result<&'a str, ParserError>
pub fn params(self) -> Tokenizer<'a, ParamsState>
pub fn trailing(self) -> Tokenizer<'a, TrailingState>
Source§impl<'a> Tokenizer<'a, ParamsState>
impl<'a> Tokenizer<'a, ParamsState>
pub fn trailing(self) -> Tokenizer<'a, TrailingState>
pub fn as_iter(&mut self) -> IntoParamsIter<'a> ⓘ
Trait Implementations§
Source§impl<'a> IntoIterator for Tokenizer<'a, ParamsState>
impl<'a> IntoIterator for Tokenizer<'a, ParamsState>
Source§impl<'a> IntoIterator for Tokenizer<'a, TagsState>
impl<'a> IntoIterator for Tokenizer<'a, TagsState>
impl<'a, T: Copy + State> Copy for Tokenizer<'a, T>
impl<'a, T: Eq + State> Eq for Tokenizer<'a, T>
impl<'a, T: State> StructuralPartialEq for Tokenizer<'a, T>
Auto Trait Implementations§
impl<'a, T> Freeze for Tokenizer<'a, T>
impl<'a, T> RefUnwindSafe for Tokenizer<'a, T>where
T: RefUnwindSafe,
impl<'a, T> Send for Tokenizer<'a, T>where
T: Send,
impl<'a, T> Sync for Tokenizer<'a, T>where
T: Sync,
impl<'a, T> Unpin for Tokenizer<'a, T>where
T: Unpin,
impl<'a, T> UnwindSafe for Tokenizer<'a, T>where
T: UnwindSafe,
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