Struct curl::easy::Transfer

source ·
pub struct Transfer<'easy, 'data> { /* private fields */ }
Expand description

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.

Implementations§

source§

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

source

pub 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.

source

pub 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.

source

pub 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.

source

pub 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.

source

pub fn ssl_ctx_function<F>(&mut self, f: F) -> Result<(), Error>
where 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.

source

pub 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.

source

pub 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.

source

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

Same as Easy::perform.

source

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

Same as Easy::unpause_read.

source

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

Same as Easy::unpause_write

Trait Implementations§

source§

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

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

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

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<'easy, 'data> !RefUnwindSafe for Transfer<'easy, 'data>

§

impl<'easy, 'data> !Send for Transfer<'easy, 'data>

§

impl<'easy, 'data> !Sync for Transfer<'easy, 'data>

§

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

§

impl<'easy, 'data> !UnwindSafe for Transfer<'easy, 'data>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.