Struct curl::easy::Transfer
[−]
[src]
pub struct Transfer<'easy, 'data> { /* 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 allow to elide both the Send and 'static bounds to
close over stack-local information.
Methods
impl<'easy, 'data> Transfer<'easy, 'data>[src]
fn write_function<F>(&mut self, f: F) -> Result<(), Error> where
F: FnMut(&[u8]) -> Result<usize, WriteError> + 'data,
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,
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,
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,
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 ssl_ctx_function<F>(&mut self, f: F) -> Result<(), Error> where
F: FnMut(*mut c_void) -> Result<(), Error> + Send + 'data,
F: FnMut(*mut c_void) -> Result<(), Error> + Send + 'data,
Same as Easy::ssl_ctx_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,
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,
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