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