Struct curl::easy::Transfer [] [src]

pub struct Transfer<'easy, 'data> {
    // some fields omitted
}

A scoped transfer of information which borrows an Easy and allows referencing stack-local data of the lifetime 'data.

Usage of Easy requires the 'static and Send bounds on all callbacks registered, but that's not often wanted if all you need is to collect a bunch of data in memory to a vector, for example. The Transfer structure, created by the Easy::transfer method, is used for this sort of request.

The callbacks attached to a Transfer are only active for that one transfer object, and they're allows to elide both the Send and 'static bounds to close over stack-local information.

Methods

impl<'easy, 'data> Transfer<'easy, 'data>

fn write_function<F>(&mut self, f: F) -> Result<(), Error> where F: FnMut(&[u8]) -> Result<usize, WriteError> + 'data

Same as Easy::write_function, just takes a non 'static lifetime corresponding to the lifetime of this transfer.

fn read_function<F>(&mut self, f: F) -> Result<(), Error> where F: FnMut(&mut [u8]) -> Result<usize, ReadError> + 'data

Same as Easy::read_function, just takes a non 'static lifetime corresponding to the lifetime of this transfer.

fn seek_function<F>(&mut self, f: F) -> Result<(), Error> where F: FnMut(SeekFrom) -> SeekResult + 'data

Same as Easy::seek_function, just takes a non 'static lifetime corresponding to the lifetime of this transfer.

fn progress_function<F>(&mut self, f: F) -> Result<(), Error> where F: FnMut(f64, f64, f64, f64) -> bool + 'data

Same as Easy::progress_function, just takes a non 'static lifetime corresponding to the lifetime of this transfer.

fn debug_function<F>(&mut self, f: F) -> Result<(), Error> where F: FnMut(InfoType, &[u8]) + 'data

Same as Easy::debug_function, just takes a non 'static lifetime corresponding to the lifetime of this transfer.

fn header_function<F>(&mut self, f: F) -> Result<(), Error> where F: FnMut(&[u8]) -> bool + 'data

Same as Easy::header_function, just takes a non 'static lifetime corresponding to the lifetime of this transfer.

fn perform(&self) -> Result<(), Error>

Same as Easy::transfer.

fn unpause_read(&self) -> Result<(), Error>

Same as Easy::unpause_read.

fn unpause_write(&self) -> Result<(), Error>

Same as Easy::unpause_write