mdict 0.1.8

Rust implement mdict
Documentation
mod mdx;
mod error;
mod parser;

pub use crate::mdx::MDict;
pub use crate::mdx::MDictBuilder;
pub use crate::mdx::KeyMaker;
pub use crate::mdx::WordDefinition;
pub use crate::error::Error;
pub use crate::error::Result;

#[cfg(test)]
mod tests {
	use std::borrow::Cow;
	use crate::MDictBuilder;

	const MDX_V2: &str = "/home/zl/dicts/漢語大字典/漢語大字典 (2010).mdx";

	#[test]
	fn lookup()
	{
		let mut mdx = MDictBuilder::new(MDX_V2).build().unwrap();
		let definition = mdx.lookup("將進酒").unwrap();
		assert!(definition.is_none());
		let definition = mdx.lookup("").unwrap();
		assert!(definition.is_some());
		let definition = mdx.lookup("").unwrap();
		assert!(definition.is_some());
		let definition = mdx.get_resource("\\ZhongHuaSongPlane02b-HZ.woff").unwrap();
		assert!(definition.is_some());
	}

	#[test]
	fn cache_lookup()
	{
		let mut mdx = MDictBuilder::new(MDX_V2)
			.cache_definition(true)
			.cache_resource(true)
			.build_with_key_maker(|key: &Cow<str>, _| key.to_ascii_lowercase())
			.unwrap();
		let definition = mdx.lookup("將進酒").unwrap();
		assert!(definition.is_none());
		let definition = mdx.lookup("").unwrap();
		assert!(definition.is_some());
		let definition = mdx.lookup("").unwrap();
		assert!(definition.is_some());
		let definition = mdx.get_resource("\\ZhongHuaSongPlane02b-HZ.woff").unwrap();
		assert!(definition.is_some());
	}
}