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:
parent
9bece95f28
commit
f250faaf05
3 changed files with 3 additions and 22 deletions
|
@ -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.
|
||||
|
|
|
@ -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>(
|
||||
|
|
|
@ -12,7 +12,6 @@ pub enum Error {
|
|||
ExpectedBoolean,
|
||||
ExpectedInteger,
|
||||
ExpectedString,
|
||||
ExpectedNull,
|
||||
ExpectedArray,
|
||||
ExpectedMap,
|
||||
ExpectedEnum,
|
||||
|
|
Loading…
Reference in a new issue