Trait Handler

Source
pub trait Handler: Send {
    // Required method
    fn as_any(&self) -> &dyn Any;

    // Provided methods
    fn start(
        &mut self,
        _path: &Path,
        _matcher_idx: usize,
        _token: Token,
    ) -> Result<Option<Vec<u8>>, Handler> { ... }
    fn feed(
        &mut self,
        _data: &[u8],
        _matcher_idx: usize,
    ) -> Result<Option<Vec<u8>>, Handler> { ... }
    fn end(
        &mut self,
        _path: &Path,
        _matcher_idx: usize,
        _token: Token,
    ) -> Result<Option<Vec<u8>>, Handler> { ... }
    fn is_converter(&self) -> bool { ... }
}
Expand description

Common handler trait

Required Methods§

Source

fn as_any(&self) -> &dyn Any

Function to allow downcasting

Provided Methods§

Source

fn start( &mut self, _path: &Path, _matcher_idx: usize, _token: Token, ) -> Result<Option<Vec<u8>>, Handler>

Is called when a path is matched

§Arguments
  • path - path which was matched
  • matcher_idx- idx of matcher which was used
  • token - further info about matched data
§Returns
  • Ok(None) - All went well, no output
  • Ok(Some(data)) - All went, handler has some output
  • Err(_) - Failed to execute handler
Source

fn feed( &mut self, _data: &[u8], _matcher_idx: usize, ) -> Result<Option<Vec<u8>>, Handler>

Is called when handler receives some data

§Arguments
  • data - a part of matched data
  • matcher_idx- idx of matcher which was used
§Returns
  • Ok(None) - All went well, no output
  • Ok(Some(data)) - All went, handler has some output
  • Err(_) - Failed to execute handler
Source

fn end( &mut self, _path: &Path, _matcher_idx: usize, _token: Token, ) -> Result<Option<Vec<u8>>, Handler>

Is called when the path is no longer matched

§Arguments
  • path - path which was matched
  • matcher_idx- idx of matcher which was used
  • token - further info about matched data
§Returns
  • Ok(None) - All went well, no data conversion needed
  • Ok(Some(data)) - All went well, data converted
  • Err(_) - Failed to execute handler
Source

fn is_converter(&self) -> bool

Should be handler used to convert data

Implementors§