Struct curl::easy::Transfer

pub struct Transfer<'easy, 'data> { /* fields hidden */ }
Documentation

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

impl<'easy, 'data> Transfer<'easy, 'data>
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.

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.

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.

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.

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.

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.

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.

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

Same as Easy::perform.

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

Same as Easy::unpause_read.

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

Same as Easy::unpause_write

Trait Implementations

impl<'easy, 'data> Debug for Transfer<'easy, 'data>
fn fmt(&Self, f: &mut fmt::Formatter<'_>) -> fmt::Result
impl<'easy, 'data> Drop for Transfer<'easy, 'data>
fn drop(&mut Self)

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> !UnwindSafe for Transfer<'easy, 'data>
impl<'easy, 'data> Unpin for Transfer<'easy, 'data>

Blanket Implementations

impl<T> Any for T
where
    T: 'static + ?Sized,
fn type_id(&Self) -> TypeId
impl<T> Borrow<T> for T
where
    T: ?Sized,
fn borrow(&Self) -> &T
impl<T> BorrowMut<T> for T
where
    T: ?Sized,
fn borrow_mut(&mut Self) -> &mut T
impl<T> From<T> for T
fn from(t: T) -> T

Returns the argument unchanged.

impl<T, U> Into<U> for T
where
    U: From<T>,
fn into(Self) -> U

Calls U::from(self).

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

impl<T, U> TryFrom<U> for T
where
    U: Into<T>,
type Error = Infallible
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto<U> for T
where
    U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
fn try_into(Self) -> Result<U, <U as TryFrom<T>>::Error>