[−][src]Struct surf_cookie_middleware::CookieMiddleware
A middleware for sending received cookies in surf
File system persistence
This middleware can optionally be constructed with a file or path to enable writing "persistent cookies" to disk after every received response.
Cloning semantics
All clones of this middleware will refer to the same data and fd (if persistence is enabled).
Usage example
use surf::Client; use surf_cookie_middleware::CookieMiddleware; let client = Client::new().with(CookieMiddleware::new()); // client.get(...).await?; // client.get(...).await?; <- this request will send any appropriate // cookies received from the first request, // based on request url
Implementations
impl CookieMiddleware
[src]
pub fn new() -> Self
[src]
Builds a new CookieMiddleware
Example
use surf_cookie_middleware::CookieMiddleware; let client = surf::Client::new().with(CookieMiddleware::new()); // client.get(...).await?; // client.get(...).await?; <- this request will send any appropriate // cookies received from the first request, // based on request url
pub fn with_cookie_store(cookie_store: CookieStore) -> Self
[src]
Builds a CookieMiddleware with an existing cookie_store::CookieStore
Example
use surf_cookie_middleware::{CookieStore, CookieMiddleware}; let cookie_store = CookieStore::default(); let client = surf::Client::new() .with(CookieMiddleware::with_cookie_store(cookie_store));
pub async fn from_path(path: impl Into<PathBuf>) -> Result<Self>
[src]
Builds a CookieMiddleware from a path to a filesystem cookie jar. These jars are stored in ndjson format. If the file does not exist, it will be created. If the file does exist, the cookie jar will be initialized with those cookies.
Currently this only persists "persistent cookies" -- cookies with an expiry. "Session cookies" (without an expiry) are not persisted to disk, nor are expired cookies.
Example
use surf_cookie_middleware::{CookieStore, CookieMiddleware}; let cookie_store = CookieStore::default(); let client = surf::Client::new() .with(CookieMiddleware::from_path("./cookies.ndjson").await?);
pub async fn from_file(file: impl Into<File>) -> Result<Self>
[src]
Builds a CookieMiddleware from a File (either
async_std::fs::File
or std::fs::File
) that represents
a filesystem cookie jar. These jars are stored in
ndjson format. The cookie jar will be
initialized with any cookies contained in this file, and
persisted to the file after every request.
Currently this only persists "persistent cookies" -- cookies with an expiry. "Session cookies" (without an expiry) are not persisted to disk, nor are expired cookies.
Example
use surf::Client; use surf_cookie_middleware::{CookieStore, CookieMiddleware}; let cookie_store = CookieStore::default(); let file = std::fs::File::create("./cookies.ndjson")?; let client = Client::new() .with(CookieMiddleware::from_file(file).await?);
Trait Implementations
impl Clone for CookieMiddleware
[src]
fn clone(&self) -> CookieMiddleware
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for CookieMiddleware
[src]
impl Default for CookieMiddleware
[src]
fn default() -> CookieMiddleware
[src]
impl Middleware for CookieMiddleware
[src]
Auto Trait Implementations
impl !RefUnwindSafe for CookieMiddleware
impl Send for CookieMiddleware
impl Sync for CookieMiddleware
impl Unpin for CookieMiddleware
impl !UnwindSafe for CookieMiddleware
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
fn instrument(self, span: Span) -> Instrumented<Self>
[src]
fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T> Instrument for T
[src]
fn instrument(self, span: Span) -> Instrumented<Self>
[src]
fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<F> Middleware for F where
F: Send + Sync + 'static + for<'a> Fn(Request, Client, Next<'a>) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + 'a + Send>>,
[src]
F: Send + Sync + 'static + for<'a> Fn(Request, Client, Next<'a>) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + 'a + Send>>,
pub fn handle<'life0, 'life1, 'async_trait>(
&'life0 self,
req: Request,
client: Client,
next: Next<'life1>
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + 'async_trait + Send>> where
'life0: 'async_trait,
'life1: 'async_trait,
F: 'async_trait,
[src]
&'life0 self,
req: Request,
client: Client,
next: Next<'life1>
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + 'async_trait + Send>> where
'life0: 'async_trait,
'life1: 'async_trait,
F: 'async_trait,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<T> WithSubscriber for T
[src]
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
[src]
S: Into<Dispatch>,