mdict/
lib.rs

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}