use crate::features::PomskyFeatures;
#[derive(Debug, Clone, Copy)]
#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
pub struct CompileOptions {
pub flavor: RegexFlavor,
pub max_range_size: u8,
pub allowed_features: PomskyFeatures,
}
impl Default for CompileOptions {
fn default() -> Self {
Self {
flavor: RegexFlavor::default(),
max_range_size: 6,
allowed_features: PomskyFeatures::default(),
}
}
}
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, Hash)]
#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
#[non_exhaustive]
pub enum RegexFlavor {
#[default]
Pcre,
Python,
Java,
JavaScript,
DotNet,
Ruby,
Rust,
RE2,
}