build(ariadne): vendor serde crates
This commit was merged in pull request #15.
This commit is contained in:
1 parent
90f46026f0
commit
64773e0948
490 files changed
+175103
No files matched your search
@@ -0,0 +1,29 @@
|
||||
use serde::de::{Deserializer, EnumAccess, VariantAccess, Visitor};
|
||||
use std::fmt;
|
||||
|
||||
struct EnumVisitor;
|
||||
|
||||
impl<'de> Visitor<'de> for EnumVisitor {
|
||||
type Value = (Vec<bool>, ());
|
||||
|
||||
fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
||||
formatter.write_str("enum")
|
||||
}
|
||||
|
||||
fn visit_enum<A>(self, data: A) -> Result<Self::Value, A::Error>
|
||||
where
|
||||
A: EnumAccess<'de>,
|
||||
{
|
||||
let (key, variant) = data.variant()?;
|
||||
variant.newtype_variant::<()>()?;
|
||||
Ok((key, ()))
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test() {
|
||||
let mut de = serde_json::Deserializer::from_str("{[true]: null}");
|
||||
let err = de.deserialize_enum("name", &[], EnumVisitor).unwrap_err();
|
||||
|
||||
assert!(err.to_string().contains("key must be a string"));
|
||||
}
|
||||
Reference in new issue
Block a user