1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-22 15:24:46 -05:00

feat(serde_v8): allow all values to deserialize to unit type (#12504)

This commit is contained in:
Aaron O'Mullan 2021-10-20 23:17:12 +02:00 committed by GitHub
parent 9bece95f28
commit f250faaf05
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 3 additions and 22 deletions

View file

@ -16,28 +16,14 @@ use std::rc::Rc;
///
/// It's mainly intended for embedders who want to disable ops, see ./examples/disable_ops.rs
pub fn void_op_sync() -> Box<OpFn> {
// TODO(@AaronO): use this simpler implementation after changing serde_v8 to allow all values
// to deserialize to the unit type instead of failing with `ExpectedNull`
// op_sync(|_, _: (), _: ()| Ok(()))
Box::new(move |state, _| -> Op {
let op_result = serialize_op_result(Ok(()), state);
Op::Sync(op_result)
})
op_sync(|_, _: (), _: ()| Ok(()))
}
/// A helper function that returns an async NOP OpFn
///
/// It's mainly intended for embedders who want to disable ops, see ./examples/disable_ops.rs
pub fn void_op_async() -> Box<OpFn> {
// TODO(@AaronO): use this simpler implementation after changing serde_v8 to allow all values
// to deserialize to the unit type instead of failing with `ExpectedNull`
// op_async(|_, _: (), _: ()| futures::future::ok(()))
Box::new(move |state, payload| -> Op {
let op_id = payload.op_id;
let pid = payload.promise_id;
let op_result = serialize_op_result(Ok(()), state);
Op::Async(OpCall::ready((pid, op_id, op_result)))
})
op_async(|_, _: (), _: ()| futures::future::ok(()))
}
/// Creates an op that passes data synchronously using JSON.

View file

@ -218,11 +218,7 @@ impl<'de, 'a, 'b, 's, 'x> de::Deserializer<'de>
where
V: Visitor<'de>,
{
if self.input.is_null_or_undefined() {
visitor.visit_unit()
} else {
Err(Error::ExpectedNull)
}
visitor.visit_unit()
}
fn deserialize_unit_struct<V>(

View file

@ -12,7 +12,6 @@ pub enum Error {
ExpectedBoolean,
ExpectedInteger,
ExpectedString,
ExpectedNull,
ExpectedArray,
ExpectedMap,
ExpectedEnum,