pub struct SborRawPayload<'a, E>where
E: CustomExtension,{ /* private fields */ }
Expand description
A wrapper for a full encoded SBOR payload, including the prefix byte.
Encode is implemented, but Decode is not - because the payload needs to be checked to be valid. Instead, you can use the typed or untyped traverser to validate the payload.
The payload is assumed to be valid, and for performance, the payload is encoded directly without checking if it is valid.
If you need to check the validity of a payload first:
- If you have a schema - use the typed traverser
- If it is schemaless - use the untyped traverser
Implementations§
Source§impl<'a, E> RawPayload<'a, E>where
E: CustomExtension,
impl<'a, E> RawPayload<'a, E>where
E: CustomExtension,
Sourcepub fn new_from_valid_slice(payload_bytes: &'a [u8]) -> RawPayload<'a, E>
pub fn new_from_valid_slice(payload_bytes: &'a [u8]) -> RawPayload<'a, E>
The bytes should include the prefix byte (eg 0x5b for basic SBOR).
It is the caller’s responsibility to ensure that a valid SBOR payload for extension E is passed to the caller.
This constructor does not check the prefix byte, and panics if the root value kind is invalid.
Sourcepub fn new_from_valid_slice_with_checks(
payload_bytes: &'a [u8],
) -> Option<RawPayload<'a, E>>
pub fn new_from_valid_slice_with_checks( payload_bytes: &'a [u8], ) -> Option<RawPayload<'a, E>>
The bytes should include the prefix byte (eg 0x5b for basic SBOR).
It is the caller’s responsibility to ensure that a valid SBOR payload for extension E is passed to the caller.
Unlike new_from_valid_payload_bytes
, the constructor includes a prefix byte check to hopefully
catch some errors - but it is not guaranteed to catch all errors.
Sourcepub fn new_from_valid_owned(payload_bytes: Vec<u8>) -> RawPayload<'a, E>
pub fn new_from_valid_owned(payload_bytes: Vec<u8>) -> RawPayload<'a, E>
The bytes should include the prefix byte (eg 0x5b for basic SBOR).
It is the caller’s responsibility to ensure that a valid SBOR payload for extension E is passed to the caller.
This constructor does not check the prefix byte, and panics if the root value kind is invalid.
Sourcepub fn new_from_valid_owned_with_checks(
payload_bytes: Vec<u8>,
) -> Option<RawPayload<'a, E>>
pub fn new_from_valid_owned_with_checks( payload_bytes: Vec<u8>, ) -> Option<RawPayload<'a, E>>
The bytes should include the prefix byte (eg 0x5b for basic SBOR).
It is the caller’s responsibility to ensure that a valid SBOR payload for extension E is passed to the caller.
Unlike new_from_valid_payload_bytes
, the constructor includes a prefix byte check to hopefully
catch some errors - but it is not guaranteed to catch all errors.
pub fn as_encoded_value<'b>(&'b self) -> RawValue<'b, E>
pub fn decode_into<T>(&self, depth_limit: usize) -> Result<T, DecodeError>where
T: for<'b> Decode<<E as CustomExtension>::CustomValueKind, VecDecoder<'b, <E as CustomExtension>::CustomValueKind>>,
pub fn root_value_kind( &self, ) -> ValueKind<<E as CustomExtension>::CustomValueKind>
pub fn payload_bytes(&self) -> &[u8] ⓘ
pub fn encoded_root_value_bytes(&self) -> &[u8] ⓘ
pub fn encoded_root_body_bytes(&self) -> &[u8] ⓘ
Trait Implementations§
Source§impl<'s, 'a, 'b, E> ContextualDisplay<ValueDisplayParameters<'s, 'a, E>> for RawPayload<'b, E>where
E: FormattableCustomExtension,
impl<'s, 'a, 'b, E> ContextualDisplay<ValueDisplayParameters<'s, 'a, E>> for RawPayload<'b, E>where
E: FormattableCustomExtension,
type Error = FormattingError
Source§fn contextual_format<F>(
&self,
f: &mut F,
options: &ValueDisplayParameters<'s, 'a, E>,
) -> Result<(), <RawPayload<'b, E> as ContextualDisplay<ValueDisplayParameters<'s, 'a, E>>>::Error>where
F: Write,
fn contextual_format<F>(
&self,
f: &mut F,
options: &ValueDisplayParameters<'s, 'a, E>,
) -> Result<(), <RawPayload<'b, E> as ContextualDisplay<ValueDisplayParameters<'s, 'a, E>>>::Error>where
F: Write,
fmt::Write
buffer, making use of the provided context.
See also format
, which is typically easier to use, as it takes an Into<Context>
instead of a &Context
.Source§fn format<F, TContext>(
&self,
f: &mut F,
context: TContext,
) -> Result<(), Self::Error>
fn format<F, TContext>( &self, f: &mut F, context: TContext, ) -> Result<(), Self::Error>
fmt::Write
buffer, making use of the provided context.
See also contextual_format
, which takes a &Context
instead of an Into<Context>
. Read more