add regex support
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user