pub struct ByteStream(/* private fields */);Expand description
Untyped byte stream used for both success and error responses.
Implementations§
Source§impl ByteStream
impl ByteStream
Methods from Deref<Target = Pin<Box<dyn Stream<Item = Result<Bytes>> + Send + Sync>>>§
1.33.0 · Sourcepub fn as_ref(&self) -> Pin<&<Ptr as Deref>::Target>where
Ptr: Deref,
pub fn as_ref(&self) -> Pin<&<Ptr as Deref>::Target>where
Ptr: Deref,
Gets a shared reference to the pinned value this Pin points to.
This is a generic method to go from &Pin<Pointer<T>> to Pin<&T>.
It is safe because, as part of the contract of Pin::new_unchecked,
the pointee cannot move after Pin<Pointer<T>> got created.
“Malicious” implementations of Pointer::Deref are likewise
ruled out by the contract of Pin::new_unchecked.
1.33.0 · Sourcepub fn as_mut(&mut self) -> Pin<&mut <Ptr as Deref>::Target>where
Ptr: DerefMut,
pub fn as_mut(&mut self) -> Pin<&mut <Ptr as Deref>::Target>where
Ptr: DerefMut,
Gets a mutable reference to the pinned value this Pin<Ptr> points to.
This is a generic method to go from &mut Pin<Pointer<T>> to Pin<&mut T>.
It is safe because, as part of the contract of Pin::new_unchecked,
the pointee cannot move after Pin<Pointer<T>> got created.
“Malicious” implementations of Pointer::DerefMut are likewise
ruled out by the contract of Pin::new_unchecked.
This method is useful when doing multiple calls to functions that consume the pinning pointer.
§Example
use std::pin::Pin;
impl Type {
fn method(self: Pin<&mut Self>) {
// do something
}
fn call_method_twice(mut self: Pin<&mut Self>) {
// `method` consumes `self`, so reborrow the `Pin<&mut Self>` via `as_mut`.
self.as_mut().method();
self.as_mut().method();
}
}1.84.0 · Sourcepub fn as_deref_mut(
self: Pin<&mut Pin<Ptr>>,
) -> Pin<&mut <Ptr as Deref>::Target>where
Ptr: DerefMut,
pub fn as_deref_mut(
self: Pin<&mut Pin<Ptr>>,
) -> Pin<&mut <Ptr as Deref>::Target>where
Ptr: DerefMut,
Gets Pin<&mut T> to the underlying pinned value from this nested Pin-pointer.
This is a generic method to go from Pin<&mut Pin<Pointer<T>>> to Pin<&mut T>. It is
safe because the existence of a Pin<Pointer<T>> ensures that the pointee, T, cannot
move in the future, and this method does not enable the pointee to move. “Malicious”
implementations of Ptr::DerefMut are likewise ruled out by the contract of
Pin::new_unchecked.
1.33.0 · Sourcepub fn set(&mut self, value: <Ptr as Deref>::Target)
pub fn set(&mut self, value: <Ptr as Deref>::Target)
Assigns a new value to the memory location pointed to by the Pin<Ptr>.
This overwrites pinned data, but that is okay: the original pinned value’s destructor gets
run before being overwritten and the new value is also a valid value of the same type, so
no pinning invariant is violated. See the pin module documentation
for more information on how this upholds the pinning invariants.
§Example
use std::pin::Pin;
let mut val: u8 = 5;
let mut pinned: Pin<&mut u8> = Pin::new(&mut val);
println!("{}", pinned); // 5
pinned.set(10);
println!("{}", pinned); // 10Trait Implementations§
Source§impl Deref for ByteStream
impl Deref for ByteStream
Auto Trait Implementations§
impl Freeze for ByteStream
impl !RefUnwindSafe for ByteStream
impl Send for ByteStream
impl Sync for ByteStream
impl Unpin for ByteStream
impl !UnwindSafe for ByteStream
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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