pub trait ConfigurationParser: Send + Sync + Debug + Display {
// Required methods
fn supported_format_list(&self) -> Vec<String>;
fn parse(&self, bytes: &[u8]) -> Result<Input>;
fn is_format_supported(&self, bytes: &[u8]) -> Option<bool>;
// Provided methods
fn maybe_get_modifier(&self) -> Option<&BoxedModifierFn> { ... }
fn parse_and_modify_with_logging(
&self,
bytes: &[u8]
) -> Result<Input, ConfigurationParserError> { ... }
fn parse_with_logging(
&self,
bytes: &[u8]
) -> Result<Input, ConfigurationParserError> { ... }
fn parse_and_modify(&self, bytes: &[u8]) -> Result<Input> { ... }
}