pub struct Bytes;Expand description
Adapter for contiguous byte sequences
If a type is not supported by this adapter and is convertible from Vec<u8>, the ByteVec
adapter should be used instead.
This allows optimized handling of byte sequences when serializing. This is similar to
serde_bytes. Practically, this adapter allows serialization of
bytes to go through Serializer::serialize_bytes and deserialization through
Deserializer::deserialize_bytes or Deserializer::deserialize_byte_buf.
This adapter always serializes as a serde variable-length byte sequence, even if the collection type to serialize has a statically known length.
§Example
use serde::{Deserialize, Serialize};
#[derive(Deserialize, Serialize)]
struct Foo {
#[serde(with = "serdapt::Bytes")]
bytes: Vec<u8>,
}Implementations§
Source§impl Bytes
impl Bytes
Sourcepub fn serialize<T, S>(value: &T, serializer: S) -> Result<S::Ok, S::Error>
pub fn serialize<T, S>(value: &T, serializer: S) -> Result<S::Ok, S::Error>
Serializes value as bytes
Sourcepub fn deserialize<'de, T, D>(deserializer: D) -> Result<T, D::Error>where
D: Deserializer<'de>,
Self: DeserializeWith<'de, T>,
pub fn deserialize<'de, T, D>(deserializer: D) -> Result<T, D::Error>where
D: Deserializer<'de>,
Self: DeserializeWith<'de, T>,
Deserializes value from bytes
Trait Implementations§
Source§impl<'de: 'a, 'a> DeserializeWith<'de, &'a [u8]> for Bytes
impl<'de: 'a, 'a> DeserializeWith<'de, &'a [u8]> for Bytes
Source§fn deserialize_with<D>(deserializer: D) -> Result<&'a [u8], D::Error>where
D: Deserializer<'de>,
fn deserialize_with<D>(deserializer: D) -> Result<&'a [u8], D::Error>where
D: Deserializer<'de>,
Deserializes a value using
deserializerSource§impl<'de: 'a, 'a, const N: usize> DeserializeWith<'de, &'a [u8; N]> for Bytes
impl<'de: 'a, 'a, const N: usize> DeserializeWith<'de, &'a [u8; N]> for Bytes
Source§fn deserialize_with<D>(deserializer: D) -> Result<&'a [u8; N], D::Error>where
D: Deserializer<'de>,
fn deserialize_with<D>(deserializer: D) -> Result<&'a [u8; N], D::Error>where
D: Deserializer<'de>,
Deserializes a value using
deserializerSource§impl<'de, const N: usize> DeserializeWith<'de, [u8; N]> for Bytes
impl<'de, const N: usize> DeserializeWith<'de, [u8; N]> for Bytes
Source§fn deserialize_with<D>(deserializer: D) -> Result<[u8; N], D::Error>where
D: Deserializer<'de>,
fn deserialize_with<D>(deserializer: D) -> Result<[u8; N], D::Error>where
D: Deserializer<'de>,
Deserializes a value using
deserializerSource§impl<'de> DeserializeWith<'de, Arc<[u8]>> for Bytes
impl<'de> DeserializeWith<'de, Arc<[u8]>> for Bytes
Source§fn deserialize_with<D>(deserializer: D) -> Result<Arc<[u8]>, D::Error>where
D: Deserializer<'de>,
fn deserialize_with<D>(deserializer: D) -> Result<Arc<[u8]>, D::Error>where
D: Deserializer<'de>,
Deserializes a value using
deserializerSource§impl<'de> DeserializeWith<'de, Box<[u8]>> for Bytes
impl<'de> DeserializeWith<'de, Box<[u8]>> for Bytes
Source§fn deserialize_with<D>(deserializer: D) -> Result<Box<[u8]>, D::Error>where
D: Deserializer<'de>,
fn deserialize_with<D>(deserializer: D) -> Result<Box<[u8]>, D::Error>where
D: Deserializer<'de>,
Deserializes a value using
deserializerSource§impl<'de: 'a, 'a> DeserializeWith<'de, Cow<'a, [u8]>> for Bytes
impl<'de: 'a, 'a> DeserializeWith<'de, Cow<'a, [u8]>> for Bytes
Source§fn deserialize_with<D>(deserializer: D) -> Result<Cow<'a, [u8]>, D::Error>where
D: Deserializer<'de>,
fn deserialize_with<D>(deserializer: D) -> Result<Cow<'a, [u8]>, D::Error>where
D: Deserializer<'de>,
Deserializes a value using
deserializerSource§impl<'de> DeserializeWith<'de, Rc<[u8]>> for Bytes
impl<'de> DeserializeWith<'de, Rc<[u8]>> for Bytes
Source§fn deserialize_with<D>(deserializer: D) -> Result<Rc<[u8]>, D::Error>where
D: Deserializer<'de>,
fn deserialize_with<D>(deserializer: D) -> Result<Rc<[u8]>, D::Error>where
D: Deserializer<'de>,
Deserializes a value using
deserializerSource§impl<'de> DeserializeWith<'de, Vec<u8>> for Bytes
impl<'de> DeserializeWith<'de, Vec<u8>> for Bytes
Source§fn deserialize_with<D>(deserializer: D) -> Result<Vec<u8>, D::Error>where
D: Deserializer<'de>,
fn deserialize_with<D>(deserializer: D) -> Result<Vec<u8>, D::Error>where
D: Deserializer<'de>,
Deserializes a value using
deserializerSource§impl<T> SerializeWith<T> for Bytes
impl<T> SerializeWith<T> for Bytes
Source§fn serialize_with<S: Serializer>(
value: &T,
serializer: S,
) -> Result<S::Ok, S::Error>
fn serialize_with<S: Serializer>( value: &T, serializer: S, ) -> Result<S::Ok, S::Error>
Serializes
value using serializerAuto Trait Implementations§
impl Freeze for Bytes
impl RefUnwindSafe for Bytes
impl Send for Bytes
impl Sync for Bytes
impl Unpin for Bytes
impl UnwindSafe for Bytes
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more