1mod mdx;
2mod error;
3mod parser;
4
5pub use crate::mdx::MDict;
6pub use crate::mdx::MDictBuilder;
7pub use crate::mdx::KeyMaker;
8pub use crate::mdx::WordDefinition;
9pub use crate::error::Error;
10pub use crate::error::Result;
11
12#[cfg(test)]
13mod tests {
14 use std::borrow::Cow;
15 use crate::MDictBuilder;
16
17 const MDX_V2: &str = "/home/zl/dicts/漢語大字典/漢語大字典 (2010).mdx";
18
19 #[test]
20 fn lookup()
21 {
22 let mut mdx = MDictBuilder::new(MDX_V2).build().unwrap();
23 let definition = mdx.lookup("將進酒").unwrap();
24 assert!(definition.is_none());
25 let definition = mdx.lookup("无").unwrap();
26 assert!(definition.is_some());
27 let definition = mdx.lookup("無").unwrap();
28 assert!(definition.is_some());
29 let definition = mdx.get_resource("\\ZhongHuaSongPlane02b-HZ.woff").unwrap();
30 assert!(definition.is_some());
31 }
32
33 #[test]
34 fn cache_lookup()
35 {
36 let mut mdx = MDictBuilder::new(MDX_V2)
37 .cache_definition(true)
38 .cache_resource(true)
39 .build_with_key_maker(|key: &Cow<str>, _| key.to_ascii_lowercase())
40 .unwrap();
41 let definition = mdx.lookup("將進酒").unwrap();
42 assert!(definition.is_none());
43 let definition = mdx.lookup("无").unwrap();
44 assert!(definition.is_some());
45 let definition = mdx.lookup("無").unwrap();
46 assert!(definition.is_some());
47 let definition = mdx.get_resource("\\ZhongHuaSongPlane02b-HZ.woff").unwrap();
48 assert!(definition.is_some());
49 }
50}