pomsky-bin 0.12.0

Compile pomsky expressions, a new regular expression language
Documentation
use std::ffi::OsString;

use super::ParseArgsError;

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub(crate) enum RegexEngine {
    Pcre2,
    Rust,
}

impl RegexEngine {
    pub(crate) fn parse(value: OsString) -> Result<Self, ParseArgsError> {
        let lower = value.to_string_lossy().to_ascii_lowercase();
        Ok(match lower.as_str() {
            "pcre2" => RegexEngine::Pcre2,
            "rust" => RegexEngine::Rust,
            _ => return Err(ParseArgsError::UnknownEngine(lower)),
        })
    }
}