add regex support

This commit is contained in:
2025-04-02 01:05:50 -06:00
parent 11eb29df4f
commit 6d24b304ce
4 changed files with 61 additions and 6 deletions

View File

@@ -1,4 +1,5 @@
use inline_colorization::*;
use regex::Regex;
use std::fmt::Display;
use serde::Deserialize;
@@ -74,11 +75,24 @@ pub const BOOKS_IN_ORDER: [&str; 66] = [
pub fn search_for_word(word: &str, from_files: &Bible) -> Vec<String> {
let mut found = Vec::new();
let regex = match Regex::new(&word.to_lowercase()) {
Ok(re) => re,
Err(err) => {
eprintln!("{}", err);
#[cfg(debug_assertions)]
todo!("IDK what to do yet if building regex engine fails");
#[cfg(not(debug_assertions))]
return Vec::new()
},
};
for test in &from_files.testaments {
for book in &test.books {
for chapter in &book.chapters {
for verse in &chapter.verses {
if verse.text.to_lowercase().contains(&word.to_lowercase()) {
if regex.is_match(&verse.text.to_lowercase()) {
found.push(format!("{} {}:{}", BOOKS_IN_ORDER[book.number-1], chapter.number, verse.number));
}
}