pub fn parse_operator(input: &str) -> IResult<&str, Operator>Expand description
Parse comparison operators for magic rules
Supports both symbolic and text representations of operators:
=or==for equality!=or<>for inequality&for bitwise AND
§Examples
use libmagic_rs::parser::grammar::parse_operator;
use libmagic_rs::parser::ast::Operator;
assert_eq!(parse_operator("="), Ok(("", Operator::Equal)));
assert_eq!(parse_operator("=="), Ok(("", Operator::Equal)));
assert_eq!(parse_operator("!="), Ok(("", Operator::NotEqual)));
assert_eq!(parse_operator("<>"), Ok(("", Operator::NotEqual)));
assert_eq!(parse_operator("&"), Ok(("", Operator::BitwiseAnd)));§Errors
Returns a nom parsing error if:
- Input does not start with a recognized operator symbol
- Input is empty or contains no valid operator
- Operator syntax is incomplete (e.g., just
!without=)