Struct Session

Source
pub struct Session { /* private fields */ }
Expand description

A shared cache for HTTP requests to pool data such as TCP connections between.

All HTTP requests in this crate are performed through a Session type. A Session can be cloned to acquire multiple references to the same session.

Sessions are created through the Session::new method, which returns a future that will resolve to a session once it’s been initialized.

Implementations§

Source§

impl Session

Source

pub fn new(handle: Handle) -> Session

Creates a new HTTP session object which will be bound to the given event loop.

When using libcurl it will provide us with file descriptors to listen for events on, so we’ll need raw access to an actual event loop in order to hook up all the pieces together. The event loop will also be the I/O home for this HTTP session. All HTTP I/O will occur on the event loop thread.

This function returns a future which will resolve to a Session once it’s been initialized.

Source

pub fn perform(&self, handle: Easy) -> Perform

Execute and HTTP request asynchronously, returning a future representing the request’s completion.

This method will consume the provided Easy handle, which should be configured appropriately to send off an HTTP request. The returned future will resolve back to the handle once the request is performed, along with any error that happened along the way.

The Item of the returned future is (Easy, Option<Error>) so you can always get the Easy handle back, and the Error part of the future is io::Error which represents errors communicating with the event loop or otherwise fatal errors for the Easy provided.

Note that if the Perform future is dropped it will cancel the outstanding HTTP request, cleaning up all resources associated with it.

Trait Implementations§

Source§

impl Clone for Session

Source§

fn clone(&self) -> Session

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl !Freeze for Session

§

impl !RefUnwindSafe for Session

§

impl Send for Session

§

impl !Sync for Session

§

impl Unpin for Session

§

impl !UnwindSafe for Session

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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>,

Source§

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.