Skip to content

Commit 295e759

Browse files
committed
improve serde impl
1 parent d830650 commit 295e759

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/byteview.rs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -740,14 +740,13 @@ mod serde {
740740
use serde::de::{self, Visitor};
741741
use serde::{Deserialize, Deserializer, Serialize, Serializer};
742742
use std::fmt;
743-
use std::ops::Deref;
744743

745744
impl Serialize for ByteView {
746745
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
747746
where
748747
S: Serializer,
749748
{
750-
serializer.serialize_bytes(self.deref())
749+
serializer.serialize_bytes(self)
751750
}
752751
}
753752

@@ -771,6 +770,16 @@ mod serde {
771770
{
772771
Ok(ByteView::new(v))
773772
}
773+
774+
fn visit_seq<A>(self, seq: A) -> Result<Self::Value, A::Error>
775+
where
776+
A: de::SeqAccess<'de>,
777+
{
778+
let bytes: Vec<u8> =
779+
Deserialize::deserialize(de::value::SeqAccessDeserializer::new(seq))?;
780+
781+
Ok(ByteView::new(&bytes))
782+
}
774783
}
775784

776785
deserializer.deserialize_bytes(ByteViewVisitor)

0 commit comments

Comments
 (0)