Struct mongodb::GridFsDownloadStream
source · pub struct GridFsDownloadStream { /* private fields */ }
Expand description
A stream from which a file stored in a GridFS bucket can be downloaded.
Downloading from the Stream
The GridFsDownloadStream
type implements futures_io::AsyncRead
. It is recommended that
users call the utility methods in AsyncReadExt
to interact
with the stream.
use futures_util::io::AsyncReadExt;
let mut buf = Vec::new();
let mut download_stream = bucket.open_download_stream(id).await?;
download_stream.read_to_end(&mut buf).await?;
Using tokio::io::AsyncRead
Users who prefer to use tokio’s AsyncRead
trait can use the tokio_util::compat
module.
use tokio_util::compat::FuturesAsyncReadCompatExt;
let futures_upload_stream = bucket.open_download_stream(id).await?;
let tokio_upload_stream = futures_upload_stream.compat();
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for GridFsDownloadStream
impl Send for GridFsDownloadStream
impl !Sync for GridFsDownloadStream
impl Unpin for GridFsDownloadStream
impl !UnwindSafe for GridFsDownloadStream
Blanket Implementations§
source§impl<R> AsyncReadExt for Rwhere
R: AsyncRead + ?Sized,
impl<R> AsyncReadExt for Rwhere
R: AsyncRead + ?Sized,
source§fn chain<R>(self, next: R) -> Chain<Self, R>where
Self: Sized,
R: AsyncRead,
fn chain<R>(self, next: R) -> Chain<Self, R>where
Self: Sized,
R: AsyncRead,
Creates an adaptor which will chain this stream with another. Read more
source§fn read<'a>(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self>where
Self: Unpin,
fn read<'a>(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self>where
Self: Unpin,
Tries to read some bytes directly into the given
buf
in asynchronous
manner, returning a future type. Read moresource§fn read_vectored<'a>(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>]
) -> ReadVectored<'a, Self>where
Self: Unpin,
fn read_vectored<'a>(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>]
) -> ReadVectored<'a, Self>where
Self: Unpin,
Creates a future which will read from the
AsyncRead
into bufs
using vectored
IO operations. Read moresource§fn read_exact<'a>(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self>where
Self: Unpin,
fn read_exact<'a>(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self>where
Self: Unpin,
Creates a future which will read exactly enough bytes to fill
buf
,
returning an error if end of file (EOF) is hit sooner. Read moresource§fn read_to_end<'a>(
&'a mut self,
buf: &'a mut Vec<u8, Global>
) -> ReadToEnd<'a, Self>where
Self: Unpin,
fn read_to_end<'a>(
&'a mut self,
buf: &'a mut Vec<u8, Global>
) -> ReadToEnd<'a, Self>where
Self: Unpin,
Creates a future which will read all the bytes from this
AsyncRead
. Read moresource§fn read_to_string<'a>(
&'a mut self,
buf: &'a mut String
) -> ReadToString<'a, Self>where
Self: Unpin,
fn read_to_string<'a>(
&'a mut self,
buf: &'a mut String
) -> ReadToString<'a, Self>where
Self: Unpin,
Creates a future which will read all the bytes from this
AsyncRead
. Read more