1use crate::prelude::*;
8
9#[cfg(feature = "serde")]
10mod serde;
11#[cfg(feature = "serde")]
12pub use self::serde::*;
13
14#[non_exhaustive]
19#[derive(#[automatically_derived]
impl ::core::fmt::Debug for BufferMarker {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "BufferMarker")
}
}Debug)]
20pub struct BufferMarker;
21
22impl DynamicDataMarker for BufferMarker {
23 type DataStruct = &'static [u8];
24}
25
26pub trait BufferProvider: DynamicDataProvider<BufferMarker> {}
97
98impl<P: DynamicDataProvider<BufferMarker> + ?Sized> BufferProvider for P {}
99
100#[derive(#[automatically_derived]
impl ::core::fmt::Debug for BufferFormat {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f,
match self {
BufferFormat::Json => "Json",
BufferFormat::Bincode1 => "Bincode1",
BufferFormat::Postcard1 => "Postcard1",
})
}
}Debug, #[automatically_derived]
impl ::core::cmp::PartialEq for BufferFormat {
#[inline]
fn eq(&self, other: &BufferFormat) -> bool {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
__self_discr == __arg1_discr
}
}PartialEq, #[automatically_derived]
impl ::core::cmp::Eq for BufferFormat {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_receiver_is_total_eq(&self) -> () {}
}Eq, #[automatically_derived]
impl ::core::hash::Hash for BufferFormat {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () {
let __self_discr = ::core::intrinsics::discriminant_value(self);
::core::hash::Hash::hash(&__self_discr, state)
}
}Hash, #[automatically_derived]
impl ::core::marker::Copy for BufferFormat { }Copy, #[automatically_derived]
impl ::core::clone::Clone for BufferFormat {
#[inline]
fn clone(&self) -> BufferFormat { *self }
}Clone)]
102#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
103#[non_exhaustive]
104pub enum BufferFormat {
105 Json,
107 Bincode1,
109 Postcard1,
111}
112
113impl BufferFormat {
114 pub fn check_available(&self) -> Result<(), DataError> {
116 match self {
117 #[cfg(feature = "deserialize_json")]
118 BufferFormat::Json => Ok(()),
119 #[cfg(not(feature = "deserialize_json"))]
120 BufferFormat::Json => Err(DataErrorKind::Deserialize.with_str_context("deserializing `BufferFormat::Json` requires the `deserialize_json` Cargo feature")),
121
122 #[cfg(feature = "deserialize_bincode_1")]
123 BufferFormat::Bincode1 => Ok(()),
124 #[cfg(not(feature = "deserialize_bincode_1"))]
125 BufferFormat::Bincode1 => Err(DataErrorKind::Deserialize.with_str_context("deserializing `BufferFormat::Bincode1` requires the `deserialize_bincode_1` Cargo feature")),
126
127 #[cfg(feature = "deserialize_postcard_1")]
128 BufferFormat::Postcard1 => Ok(()),
129 #[cfg(not(feature = "deserialize_postcard_1"))]
130 BufferFormat::Postcard1 => Err(DataErrorKind::Deserialize.with_str_context("deserializing `BufferFormat::Postcard1` requires the `deserialize_postcard_1` Cargo feature")),
131 }
132 }
133}