use crate::errors::BotDetectorError;
use pcre2::bytes::{Regex as RegexBytes, RegexBuilder};
use serde::Deserialize;
use std::fs;
#[derive(Debug, Deserialize)]
struct PatternList(Vec<String>);
#[allow(clippy::module_name_repetitions)]
pub fn generate_pattern(json_path: &str) -> Result<RegexBytes, BotDetectorError> {
let patterns_json = fs::read_to_string(json_path)?;
let patterns: PatternList = serde_json::from_str(&patterns_json)?;
let pattern_str = patterns.0.join("|");
let regex = RegexBuilder::new().caseless(true).build(&pattern_str)?;
Ok(regex)
}