Struct holochain_wasmer_guest::SerializedBytes
source · [−]#[repr(transparent)]pub struct SerializedBytes(_);
Expand description
A Canonical Serialized Bytes representation for data If you have a data structure that needs a canonical byte representation use this Always round-trip through SerializedBytes via. a single TryFrom implementation. This ensures that the internal bytes of SerializedBytes are indeed canonical. The corrolary is that if bytes are NOT wrapped in SerializedBytes we can assume they are NOT canonical. Typically we need a canonical serialization when data is to be handled at the byte level by independently implemented and maintained systems.
Examples of times we need a canonical set of bytes to represent data:
- cryptographic operations
- moving across the host/guest wasm boundary
- putting data on the network
Examples of times where we may not need a canonical representation and so may not need this:
- round tripping data through a database that has its own serialization preferences
- debug output or logging of data that is to be human readible
- moving between data types within a single system that has no external facing representation
uses #[repr(transparent)] to maximise compatibility with ffi @see https://doc.rust-lang.org/1.26.2/unstable-book/language-features/repr-transparent.html#enter-reprtransparent
uses serde_bytes for efficient serialization and deserialization without this every byte will be individually round tripped through serde @see https://crates.io/crates/serde_bytes
Implementations
Trait Implementations
sourceimpl Clone for SerializedBytes
impl Clone for SerializedBytes
sourcefn clone(&self) -> SerializedBytes
fn clone(&self) -> SerializedBytes
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for SerializedBytes
impl Debug for SerializedBytes
A bit of magic to convert the internal messagepack bytes into roughly equivalent JSON output for the purposes of debugging. 90% of the time you probably want this if you are a dev, to see something that “looks like” a data structure when you do {:?} in a formatted string, rather than a vector of bytes in the remaining 10% of situations where you want to debug the real messagepack bytes, call the .bytes() method on SerializedBytes and debug that.
sourceimpl Default for SerializedBytes
impl Default for SerializedBytes
sourcefn default() -> SerializedBytes
fn default() -> SerializedBytes
Returns the “default value” for a type. Read more
sourceimpl<'de> Deserialize<'de> for SerializedBytes
impl<'de> Deserialize<'de> for SerializedBytes
sourcefn deserialize<__D>(
__deserializer: __D
) -> Result<SerializedBytes, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<SerializedBytes, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl From<SerializedBytes> for UnsafeBytes
impl From<SerializedBytes> for UnsafeBytes
sourcefn from(sb: SerializedBytes) -> UnsafeBytes
fn from(sb: SerializedBytes) -> UnsafeBytes
Converts to this type from the input type.
sourceimpl From<UnsafeBytes> for SerializedBytes
impl From<UnsafeBytes> for SerializedBytes
sourcefn from(b: UnsafeBytes) -> SerializedBytes
fn from(b: UnsafeBytes) -> SerializedBytes
Converts to this type from the input type.
sourceimpl Hash for SerializedBytes
impl Hash for SerializedBytes
sourceimpl Ord for SerializedBytes
impl Ord for SerializedBytes
sourceimpl PartialEq<SerializedBytes> for SerializedBytes
impl PartialEq<SerializedBytes> for SerializedBytes
sourcefn eq(&self, other: &SerializedBytes) -> bool
fn eq(&self, other: &SerializedBytes) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &SerializedBytes) -> bool
fn ne(&self, other: &SerializedBytes) -> bool
This method tests for !=
.
sourceimpl PartialOrd<SerializedBytes> for SerializedBytes
impl PartialOrd<SerializedBytes> for SerializedBytes
sourcefn partial_cmp(&self, other: &SerializedBytes) -> Option<Ordering>
fn partial_cmp(&self, other: &SerializedBytes) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
sourceimpl Serialize for SerializedBytes
impl Serialize for SerializedBytes
sourcefn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
sourceimpl<'_> TryFrom<&'_ ()> for SerializedBytes
impl<'_> TryFrom<&'_ ()> for SerializedBytes
type Error = SerializedBytesError
type Error = SerializedBytesError
The type returned in the event of a conversion error.
sourcefn try_from(t: &()) -> Result<SerializedBytes, SerializedBytesError>
fn try_from(t: &()) -> Result<SerializedBytes, SerializedBytesError>
Performs the conversion.
sourceimpl<'a> TryFrom<&'a SerializedBytes> for SerializedBytes
impl<'a> TryFrom<&'a SerializedBytes> for SerializedBytes
type Error = SerializedBytesError
type Error = SerializedBytesError
The type returned in the event of a conversion error.
sourcefn try_from(
s: &'a SerializedBytes
) -> Result<SerializedBytes, <SerializedBytes as TryFrom<&'a SerializedBytes>>::Error>
fn try_from(
s: &'a SerializedBytes
) -> Result<SerializedBytes, <SerializedBytes as TryFrom<&'a SerializedBytes>>::Error>
Performs the conversion.
sourceimpl TryFrom<()> for SerializedBytes
impl TryFrom<()> for SerializedBytes
type Error = SerializedBytesError
type Error = SerializedBytesError
The type returned in the event of a conversion error.
sourcefn try_from(t: ()) -> Result<SerializedBytes, SerializedBytesError>
fn try_from(t: ()) -> Result<SerializedBytes, SerializedBytesError>
Performs the conversion.
sourceimpl TryFrom<SerializedBytes> for ()
impl TryFrom<SerializedBytes> for ()
type Error = SerializedBytesError
type Error = SerializedBytesError
The type returned in the event of a conversion error.
sourcefn try_from(sb: SerializedBytes) -> Result<(), SerializedBytesError>
fn try_from(sb: SerializedBytes) -> Result<(), SerializedBytesError>
Performs the conversion.
impl Eq for SerializedBytes
impl StructuralEq for SerializedBytes
impl StructuralPartialEq for SerializedBytes
Auto Trait Implementations
impl RefUnwindSafe for SerializedBytes
impl Send for SerializedBytes
impl Sync for SerializedBytes
impl Unpin for SerializedBytes
impl UnwindSafe for SerializedBytes
Blanket Implementations
impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<F, W, T, D> Deserialize<With<T, W>, D> for F where
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
impl<F, W, T, D> Deserialize<With<T, W>, D> for F where
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
fn deserialize(
&self,
deserializer: &mut D
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize(
&self,
deserializer: &mut D
) -> Result<With<T, W>, <D as Fallible>::Error>
Deserializes using the given deserializer
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more