AggregateSearcher should keep order of searchers

This commit is contained in:
Adrian Malacoda 2017-03-12 18:52:39 -05:00
parent 552287bc94
commit 4706cb4460
3 changed files with 5 additions and 3 deletions

View File

@ -18,3 +18,4 @@ hyper = "0.9.18"
serde_json = "0.9"
retry = { git = "https://github.com/jimmycuadra/retry", rev = "3fa812e650d64ede61ea243fb83ef1a222ff0f84" }
mopa = "0.2.2"
linked-hash-map = "0.4.1"

View File

@ -2,6 +2,7 @@ extern crate hyper;
extern crate select;
extern crate serde_json;
extern crate retry;
extern crate linked_hash_map;
#[macro_use]
extern crate mopa;

View File

@ -3,7 +3,7 @@ pub mod yugioh;
pub mod mediawiki;
use Link;
use std::collections::BTreeMap;
use linked_hash_map::LinkedHashMap;
pub trait Searcher<T: Link> {
fn fuzzy_search (&self, name: &str) -> Option<T> {
@ -15,13 +15,13 @@ pub trait Searcher<T: Link> {
type SearchFn = Box<Fn(String, bool) -> Option<Box<Link>>>;
pub struct AggregateSearcher {
searchers: BTreeMap<String, SearchFn>
searchers: LinkedHashMap<String, SearchFn>
}
impl AggregateSearcher {
pub fn new () -> AggregateSearcher {
AggregateSearcher {
searchers: BTreeMap::new()
searchers: LinkedHashMap::new()
}
}