use std::fmt;
use serde::de;
use serde::de::Visitor;
use crate::fixtures::ByteBuffer;
pub(crate) struct ByteBufferVisitor;
impl<'de> Visitor<'de> for ByteBufferVisitor {
type Value = ByteBuffer;
#[inline(always)]
fn expecting(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
formatter.write_str("a JSON byte string")
}
#[inline]
fn visit_borrowed_bytes<E>(self, value: &'de [u8]) -> Result<Self::Value, E>
where
E: de::Error,
{
Ok(ByteBuffer(value.to_vec()))
}
#[inline]
fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
where
E: de::Error,
{
Ok(ByteBuffer(value.to_vec()))
}
#[inline(always)]
fn visit_byte_buf<E>(self, value: Vec<u8>) -> Result<Self::Value, E>
where
E: de::Error,
{
Ok(ByteBuffer(value))
}
}