Trait teloxide::net::Download

source ·
pub trait Download<'w> {
    type Err;
    type Fut: Future<Output = Result<(), Self::Err>> + Send;
    type StreamErr;
    type Stream: Stream<Item = Result<Bytes, Self::StreamErr>> + Send;

    fn download_file(
        &self,
        path: &str,
        destination: &'w mut (dyn AsyncWrite + Send + Unpin + 'w)
    ) -> Self::Fut; fn download_file_stream(&self, path: &str) -> Self::Stream; }
Expand description

A trait for downloading files from Telegram.

Required Associated Types§

An error returned from download_file.

A future returned from download_file.

An error returned from download_file_stream.

A stream returned from download_file_stream.

Required Methods§

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?;

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.

Implementors§