Struct transfer_progress::Transfer [−][src]
pub struct Transfer<R, W> where
R: Read + Send + 'static,
W: Write + Send + 'static, { /* fields omitted */ }Implementations
Creates and starts a new Transfer.
Example
use transfer_progress::Transfer; use std::fs::File; let reader = File::open("file1.txt")?; let writer = File::create("file2.txt")?; let transfer = Transfer::new(reader, writer);
Consumes the Transfer, blocking until the transfer is complete.
If the transfer was successful, returns Ok(reader, writer), otherwise returns
the error.
If the transfer is already complete, returns immediately.
Example
use transfer_progress::Transfer; use std::fs::File; let reader = File::open("file1.txt")?; let writer = File::create("file2.txt")?; let transfer = Transfer::new(reader, writer); let (reader, writer) = transfer.finish()?;
Tests if the transfer is complete
Example
use transfer_progress::Transfer; use std::fs::File; let reader = File::open("file1.txt")?; let writer = File::create("file2.txt")?; let transfer = Transfer::new(reader, writer); while !transfer.is_complete() { println!("Not complete yet"); std::thread::sleep(std::time::Duration::from_secs(1)); } println!("Complete!");
Returns the number of bytes transferred thus far between the reader and the writer.
Example
use transfer_progress::Transfer; use std::fs::File; let reader = File::open("file1.txt")?; let writer = File::create("file2.txt")?; let transfer = Transfer::new(reader, writer); while !transfer.is_complete() { println!("{} bytes transferred so far", transfer.transferred()); std::thread::sleep(std::time::Duration::from_secs(1)); } println!("Complete!");
Returns the elapsed time since the transfer started.
Example
use transfer_progress::Transfer; use std::fs::File; let reader = File::open("file1.txt")?; let writer = File::create("file2.txt")?; let transfer = Transfer::new(reader, writer); while !transfer.is_complete() {} println!("Transfer took {:?}", transfer.running_time());
Returns the average speed, in bytes per second, of the transfer.
Example
use transfer_progress::Transfer; use std::fs::File; let reader = File::open("file1.txt")?; let writer = File::create("file2.txt")?; let transfer = Transfer::new(reader, writer); while !transfer.is_complete() { println!("{}B/s", transfer.speed()); std::thread::sleep(std::time::Duration::from_secs(1)); }