lt-fm-index 0.7.1

FM-index using k-mer lookup table for exact pattern matching
use crate_fm_index::converter::RangeConverter;
use crate_fm_index::suffix_array::{SuffixOrderSampler, SuffixOrderSampledArray};
use crate_fm_index::{BackwardSearchIndex, FMIndex};

type OtherFmIndex = FMIndex<u8, RangeConverter<u8>, SuffixOrderSampledArray>;

pub fn get_fmindex_of_other_crate(text: &Vec<u8>) -> OtherFmIndex {
    let converter = RangeConverter::new(b' ', b'~');
    let sampler = SuffixOrderSampler::new().level(2);
    let index = FMIndex::new(text.clone(), converter, sampler);
    index
}

pub fn get_sorted_locations(fm_index: &OtherFmIndex, pattern: &Vec<u8>) -> Vec<u64> {
    let search = fm_index.search_backward(pattern);
    let mut location = search.locate();
    location.sort();
    location
}