diff --git a/.gitignore b/.gitignore index 8eb581d..3b84f01 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /target /Cargo.lock /.idea +/.vscode diff --git a/src/mock/address.rs b/src/mock/address.rs index e3f08d2..b9e060a 100644 --- a/src/mock/address.rs +++ b/src/mock/address.rs @@ -8,9 +8,9 @@ use std::fs::File; use std::io::BufReader; pub const CN_ADDRESS_DATA: Lazy>> = - Lazy::new(|| Address::from_path("./src/data/cn_address.json", AddressType::Cn)); + Lazy::new(|| Address::from_string(include_str!("../data/cn_address.json"), AddressType::Cn)); pub const EN_ADDRESS_DATA: Lazy>> = - Lazy::new(|| Address::from_path("./src/data/en_address.json", AddressType::En)); + Lazy::new(|| Address::from_string(include_str!("../data/en_address.json"), AddressType::En)); #[derive(Debug, Default, Clone)] pub struct MockZipFn; @@ -53,6 +53,15 @@ pub struct Address { } impl Address { + fn from_string(content: &str, r#type: AddressType) -> Result> { + let mut v = serde_json::Deserializer::from_str(content); + let address_items = AddressItems::deserialize(&mut v)?; + Ok(Self { + r#type, + address_items, + }) + } + pub fn from_path(path: &str, r#type: AddressType) -> Result> { let file = File::open(path)?; let reader = BufReader::new(file);