use serde::Deserialize;
use serde::Deserializer;
use super::WireShapeOwned;
use super::wire_envelope_owned_visitor::WireEnvelopeOwnedVisitor;
pub(in crate::value_wire) struct WireEnvelopeOwned {
pub(in crate::value_wire) version: u8,
pub(in crate::value_wire) value: WireShapeOwned,
}
impl<'de> Deserialize<'de> for WireEnvelopeOwned {
#[inline]
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
let allow_sequence = !deserializer.is_human_readable();
deserializer.deserialize_struct(
"WireEnvelopeRef",
&["version", "value"],
WireEnvelopeOwnedVisitor::new(allow_sequence),
)
}
}