main
Elnu 10 months ago
parent 46760ba568
commit 30ee7577eb

@ -5,4 +5,4 @@ pub use models::*;
mod serial;
#[cfg(test)]
mod tests;
mod tests;

@ -1,5 +1,5 @@
use serde::Deserialize;
use codes_iso_639::part_2::LanguageCode;
use serde::Deserialize;
use crate::serial::*;
@ -44,7 +44,7 @@ pub struct JmdictExampleSource {
#[derive(Deserialize)]
#[serde(rename_all(deserialize = "PascalCase"), deny_unknown_fields)]
pub enum JmdictExampleSourceSrcType {
Amogus
Amogus,
}
#[derive(Deserialize)]
@ -135,4 +135,4 @@ pub struct JmdictSource {
pub r#type: Option<String>,
#[serde(deserialize_with = "wasei")]
pub wasei: bool,
}
}

@ -1 +1 @@
pub mod jmdict;
pub mod jmdict;

@ -1,6 +1,6 @@
use serde::{Deserializer, Deserialize};
use serde_json::Value;
use codes_iso_639::{part_2::LanguageCode, LanguageCodeError};
use serde::{Deserialize, Deserializer};
use serde_json::Value;
use std::str::FromStr;
pub fn nullable_list<'de, D, T>(deserializer: D) -> Result<Vec<T>, D::Error>
@ -16,7 +16,7 @@ where
Ok(Vec::new())
} else {
// Otherwise, try to deserialize the value as a Vec<String>
<Vec::<T> as serde::Deserialize>::deserialize(value).map_err(serde::de::Error::custom)
<Vec<T> as serde::Deserialize>::deserialize(value).map_err(serde::de::Error::custom)
}
}
@ -28,7 +28,7 @@ where
let value: Value = Deserialize::deserialize(deserializer)?;
if !value.is_string() {
return Err(serde::de::Error::custom("Not a string"))
return Err(serde::de::Error::custom("Not a string"));
}
let value = value.as_str().unwrap();
@ -36,7 +36,11 @@ where
Ok(match value {
"y" => true,
"" => false,
_ => return Err(serde::de::Error::custom("Invalid Wasei value, must be \"y\" or \"\""))
_ => {
return Err(serde::de::Error::custom(
"Invalid Wasei value, must be \"y\" or \"\"",
))
}
})
}
@ -46,7 +50,7 @@ fn parse_language_code(code_str: &str) -> Result<LanguageCode, LanguageCodeError
"mol" => LanguageCode::Ron,
// Croatian
"scr" => LanguageCode::Hrv,
_ => return LanguageCode::from_str(code_str)
_ => return LanguageCode::from_str(code_str),
})
}
@ -56,7 +60,9 @@ where
{
lang_option(deserializer)
.transpose()
.unwrap_or(Err(serde::de::Error::custom("Expected language code, found null!")))
.unwrap_or(Err(serde::de::Error::custom(
"Expected language code, found null!",
)))
}
pub fn lang_default_eng<'de, D>(deserializer: D) -> Result<LanguageCode, D::Error>
@ -87,4 +93,4 @@ where
Value::String(str) if str.is_empty() => Ok(serde::de::IgnoredAny),
_ => Err(serde::de::Error::custom("Expected null or empty string!")),
}
}
}

@ -18,4 +18,4 @@ fn jmdict() {
.unwrap()
.unwrap();
let _jmdict: Jmdict = serde_json::from_str(&contents).unwrap();
}
}

Loading…
Cancel
Save