use fst::{
automaton::{Levenshtein, Subsequence},
Automaton,
};
use regex_automata::DenseDFA;
use rustdoc_seeker::RustDoc;
use std::fs;
fn main() {
let data = fs::read_to_string("search-index.js").unwrap();
let rustdoc: RustDoc = data.parse().unwrap();
let seeker = rustdoc.build();
let dfa = DenseDFA::new(".*dedup.*").unwrap();
for i in seeker.search(&dfa) {
println!("Regex {}", i);
}
let edist = Levenshtein::new("dedXp", 1).unwrap();
for i in seeker.search(&edist) {
println!("Edit Distance {}", i);
}
let subsq = Subsequence::new("dedup");
for i in seeker.search(&subsq) {
println!("Subsequence {}", i);
}
let union = subsq.union(dfa);
for i in seeker.search(&union) {
println!("Union {}", i);
}
let starts = edist.starts_with();
for i in seeker.search(&starts) {
println!("Starts_with {}", i);
}
}