Skip to main content

CanonicalBytes

Struct CanonicalBytes 

Source
pub struct CanonicalBytes<W = CanonicalJsonWitness> { /* private fields */ }
Expand description

Canonical JSON bytes paired with a phantom validation witness.

The wrapped buffer is immutable once constructed, so downstream signing, storage, and export paths can share it without reserializing or risking accidental mutation.

Implementations§

Source§

impl CanonicalBytes

Source

pub fn new<T>(value: &T) -> Result<CanonicalBytes, Error>
where T: Serialize,

Serialize a value to canonical JSON bytes and wrap them with a witness.

Source

pub fn from_serializable<T>(value: &T) -> Result<CanonicalBytes, Error>
where T: Serialize,

Serialize a value to canonical JSON bytes and wrap them with a witness.

Source

pub fn from_value(value: &Value) -> Result<CanonicalBytes, Error>

Canonicalize a JSON value and wrap the resulting bytes with a witness.

Source§

impl<W> CanonicalBytes<W>

Source

pub fn as_bytes(&self) -> &[u8]

Borrow the canonical JSON byte buffer.

Source

pub fn into_vec(self) -> Vec<u8>

Consume the wrapper and return the canonical JSON byte buffer.

Source

pub fn len(&self) -> usize

Return the byte length of the canonical JSON buffer.

Source

pub fn is_empty(&self) -> bool

Return true when the canonical JSON buffer is empty.

Trait Implementations§

Source§

impl<W> AsRef<[u8]> for CanonicalBytes<W>

Source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<W> Debug for CanonicalBytes<W>
where W: Debug,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<W> Eq for CanonicalBytes<W>
where W: Eq,

Source§

impl<W> Hash for CanonicalBytes<W>
where W: Hash,

Source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<W> PartialEq for CanonicalBytes<W>
where W: PartialEq,

Source§

fn eq(&self, other: &CanonicalBytes<W>) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl<W> StructuralPartialEq for CanonicalBytes<W>
where W: PartialEq,

Auto Trait Implementations§

§

impl<W> Freeze for CanonicalBytes<W>

§

impl<W> RefUnwindSafe for CanonicalBytes<W>
where W: RefUnwindSafe,

§

impl<W> Send for CanonicalBytes<W>
where W: Send,

§

impl<W> Sync for CanonicalBytes<W>
where W: Sync,

§

impl<W> Unpin for CanonicalBytes<W>
where W: Unpin,

§

impl<W> UnsafeUnpin for CanonicalBytes<W>

§

impl<W> UnwindSafe for CanonicalBytes<W>
where W: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToHex for T
where T: AsRef<[u8]>,

Source§

fn encode_hex<U>(&self) -> U
where U: FromIterator<char>,

Encode the hex strict representing self into the result. Lower case letters are used (e.g. f9b4ca)
Source§

fn encode_hex_upper<U>(&self) -> U
where U: FromIterator<char>,

Encode the hex strict representing self into the result. Upper case letters are used (e.g. F9B4CA)
Source§

impl<T> ToHex for T
where T: AsRef<[u8]>,

Source§

fn encode_hex<U>(&self) -> U
where U: FromIterator<char>,

👎Deprecated:

use ToHexExt instead

Encode the hex strict representing self into the result. Lower case letters are used (e.g. f9b4ca).
Source§

fn encode_hex_upper<U>(&self) -> U
where U: FromIterator<char>,

👎Deprecated:

use ToHexExt instead

Encode the hex strict representing self into the result. Upper case letters are used (e.g. F9B4CA).
Source§

impl<T> ToHexExt for T
where T: AsRef<[u8]>,

Source§

fn encode_hex(&self) -> String

Encode the hex strict representing self into the result. Lower case letters are used (e.g. f9b4ca).
Source§

fn encode_hex_upper(&self) -> String

Encode the hex strict representing self into the result. Upper case letters are used (e.g. F9B4CA).
Source§

fn encode_hex_with_prefix(&self) -> String

Encode the hex strict representing self into the result with prefix 0x. Lower case letters are used (e.g. 0xf9b4ca).
Source§

fn encode_hex_upper_with_prefix(&self) -> String

Encode the hex strict representing self into the result with prefix 0X. Upper case letters are used (e.g. 0xF9B4CA).
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.