AggregateSearcher should keep order of searchers
This commit is contained in:
parent
552287bc94
commit
4706cb4460
@ -18,3 +18,4 @@ hyper = "0.9.18"
|
|||||||
serde_json = "0.9"
|
serde_json = "0.9"
|
||||||
retry = { git = "https://github.com/jimmycuadra/retry", rev = "3fa812e650d64ede61ea243fb83ef1a222ff0f84" }
|
retry = { git = "https://github.com/jimmycuadra/retry", rev = "3fa812e650d64ede61ea243fb83ef1a222ff0f84" }
|
||||||
mopa = "0.2.2"
|
mopa = "0.2.2"
|
||||||
|
linked-hash-map = "0.4.1"
|
||||||
|
@ -2,6 +2,7 @@ extern crate hyper;
|
|||||||
extern crate select;
|
extern crate select;
|
||||||
extern crate serde_json;
|
extern crate serde_json;
|
||||||
extern crate retry;
|
extern crate retry;
|
||||||
|
extern crate linked_hash_map;
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate mopa;
|
extern crate mopa;
|
||||||
|
@ -3,7 +3,7 @@ pub mod yugioh;
|
|||||||
pub mod mediawiki;
|
pub mod mediawiki;
|
||||||
|
|
||||||
use Link;
|
use Link;
|
||||||
use std::collections::BTreeMap;
|
use linked_hash_map::LinkedHashMap;
|
||||||
|
|
||||||
pub trait Searcher<T: Link> {
|
pub trait Searcher<T: Link> {
|
||||||
fn fuzzy_search (&self, name: &str) -> Option<T> {
|
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>>>;
|
type SearchFn = Box<Fn(String, bool) -> Option<Box<Link>>>;
|
||||||
pub struct AggregateSearcher {
|
pub struct AggregateSearcher {
|
||||||
searchers: BTreeMap<String, SearchFn>
|
searchers: LinkedHashMap<String, SearchFn>
|
||||||
}
|
}
|
||||||
|
|
||||||
impl AggregateSearcher {
|
impl AggregateSearcher {
|
||||||
pub fn new () -> AggregateSearcher {
|
pub fn new () -> AggregateSearcher {
|
||||||
AggregateSearcher {
|
AggregateSearcher {
|
||||||
searchers: BTreeMap::new()
|
searchers: LinkedHashMap::new()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user