pub fn is_divisibility_symbol(c: char) -> bool {
matches!(c, '|' | '\u{2224}')
}
pub fn encode_divisibility(c: char, result: &mut Vec<u8>) -> Result<(), String> {
match c {
'|' => {
result.push(51);
Ok(())
}
'\u{2224}' => {
result.extend_from_slice(&[24, 51]);
Ok(())
}
_ => Err(format!("unsupported divisibility symbol: {c}")),
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn encodes_not_divides_symbol() -> Result<(), String> {
let mut result = Vec::new();
encode_divisibility('\u{2224}', &mut result)?;
assert_eq!(result, vec![24, 51]);
Ok(())
}
}