1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
use crate::{common::*, parser::Parser}; pub trait ParserProvider: fmt::Debug { fn get_parser_for_data(&self) -> Box<dyn Parser + Sync + Send>; fn get_parser_for_commands(&self) -> Box<dyn Parser + Sync + Send>; } impl<T> ParserProvider for Arc<T> where T: ParserProvider, { fn get_parser_for_data(&self) -> Box<dyn Parser + Sync + Send> { T::get_parser_for_data(self) } fn get_parser_for_commands(&self) -> Box<dyn Parser + Sync + Send> { T::get_parser_for_commands(self) } }