Moved string matching to sqlite

Probably (definitely more efficient)
This commit is contained in:
2025-08-20 21:07:37 +01:00
parent 6ff0204189
commit 3f7cd6353a
4 changed files with 51 additions and 23 deletions

View File

@@ -1,4 +1,5 @@
use clap::Parser;
use scryfall_deser::find_matching_cards;
use scryfall_deser::get_all_lowercase_card_names;
use scryfall_deser::get_card_by_name;
use scryfall_deser::get_local_cache_folder;
@@ -55,26 +56,19 @@ fn main() {
}
search_string.pop();
// This section should be replaced with a SQL command
let cards = get_all_lowercase_card_names();
let mut matching_cards = Vec::new();
for card in cards {
if card.contains(&search_string) {
matching_cards.push(card.clone());
}
}
let matching_cards = find_matching_cards(&search_string);
dbg!(&matching_cards);
if matching_cards.is_empty() {
// Do some distance checking stuff
} else if matching_cards.len() == 1 {
let card = get_card_by_name(&matching_cards[0], GetNameType::LowercaseName);
let card = get_card_by_name(&matching_cards[0].name, GetNameType::LowercaseName);
dbg!(card);
} else {
for card in matching_cards {
println!(
"{}",
get_card_by_name(&card, GetNameType::LowercaseName)
get_card_by_name(&card.lowercase_name, GetNameType::LowercaseName)
.unwrap()
.name
);