Trait teloxide_core::net::Download
source · pub trait Download {
type Err<'dst>;
type Fut<'dst>: Future<Output = Result<(), Self::Err<'dst>>> + Send;
type StreamErr;
type Stream: Stream<Item = Result<Bytes, Self::StreamErr>> + Send;
// Required methods
fn download_file<'dst>(
&self,
path: &str,
destination: &'dst mut (dyn AsyncWrite + Unpin + Send),
) -> Self::Fut<'dst>;
fn download_file_stream(&self, path: &str) -> Self::Stream;
}
Expand description
A trait for downloading files from Telegram.
Required Associated Types§
sourcetype Err<'dst>
type Err<'dst>
An error returned from download_file
.
sourcetype Fut<'dst>: Future<Output = Result<(), Self::Err<'dst>>> + Send
type Fut<'dst>: Future<Output = Result<(), Self::Err<'dst>>> + Send
A future returned from download_file
.
sourcetype StreamErr
type StreamErr
An error returned from
download_file_stream
.
Required Methods§
sourcefn download_file<'dst>(
&self,
path: &str,
destination: &'dst mut (dyn AsyncWrite + Unpin + Send),
) -> Self::Fut<'dst>
fn download_file<'dst>( &self, path: &str, destination: &'dst mut (dyn AsyncWrite + Unpin + Send), ) -> Self::Fut<'dst>
Download a file from Telegram into destination
.
path
can be obtained from GetFile
.
To download as a stream of chunks, see download_file_stream
.
§Examples
use teloxide_core::{
net::Download,
requests::{Request, Requester},
types::File,
Bot,
};
use tokio::fs;
let bot = Bot::new("TOKEN");
let file = bot.get_file("*file_id*").await?;
let mut dst = fs::File::create("/tmp/test.png").await?;
bot.download_file(&file.path, &mut dst).await?;
sourcefn download_file_stream(&self, path: &str) -> Self::Stream
fn download_file_stream(&self, path: &str) -> Self::Stream
Download a file from Telegram as Stream
.
path
can be obtained from the GetFile
.
To download into an AsyncWrite
(e.g. tokio::fs::File
), see
download_file
.
Object Safety§
This trait is not object safe.