Skip to main content

ByteStream

Struct ByteStream 

Source
pub struct ByteStream { /* private fields */ }
Expand description

An upload body with explicit length, integrity, and replay semantics.

Byte and file bodies are replayable. A caller-provided stream is one-shot and requires both its exact content length and SHA-256 digest so the client never buffers it or silently switches to unsigned payloads.

Implementations§

Source§

impl ByteStream

Source

pub fn from_bytes(bytes: impl Into<Bytes>) -> Self

Creates a replayable in-memory body.

Source

pub fn from_path(path: impl AsRef<Path>) -> Self

Creates a replayable file body.

The explicitly supplied file is copied into a private disk-backed snapshot while it is hashed. Every retry reads that immutable snapshot, so changes to the original path cannot alter the signed upload bytes.

Source

pub fn from_stream<S>(stream: S, length: u64, sha256: [u8; 32]) -> Self
where S: Stream<Item = Result<Bytes, Error>> + Send + 'static,

Creates a one-shot stream with a caller-supplied exact digest.

The stream is never retried. sha256 is the digest of exactly length bytes and is used for SigV4 payload signing.

Trait Implementations§

Source§

impl Debug for ByteStream

Source§

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

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

impl From<&'static [u8]> for ByteStream

Source§

fn from(value: &'static [u8]) -> Self

Converts to this type from the input type.
Source§

impl From<Bytes> for ByteStream

Source§

fn from(value: Bytes) -> Self

Converts to this type from the input type.
Source§

impl From<Vec<u8>> for ByteStream

Source§

fn from(value: Vec<u8>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

Source§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.
Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more