Skip to main content

HttpContext

Struct HttpContext 

Source
#[non_exhaustive]
pub struct HttpContext { pub request: Arc<Request>, pub response: Arc<HttpResponse>, pub session: Option<Arc<Session>>, pub proxy_info: Option<ProxyInfo>, pub enqueue: EnqueueLinker, pub storage: StorageHandle, pub crawler: CrawlerHandle, }
Expand description

Per-request context produced by HttpKind.

This intentionally differs from INTERFACE §4.2 in two ways. The response is an Arc<HttpResponse> because CrawlerKind::Context must be a cheap aliasing clone and the engine clones a context for each attempt. The proposed log: Log field is omitted because no Log type exists yet, logging is not scheduled by the roadmap, and Phase 2’s BasicContext likewise omits it; use tracing macros in the meantime.

The response cookie headers from every redirect hop have already been stored in the session’s cookie jar by ReqwestClient during the send. No separate cookie extraction is needed.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§request: Arc<Request>

Crawl request that produced this context.

§response: Arc<HttpResponse>

Final buffered response, shared cheaply across context clones.

§session: Option<Arc<Session>>

Session used for this attempt, if sessions are enabled.

§proxy_info: Option<ProxyInfo>

Proxy selected for this attempt.

§enqueue: EnqueueLinker

URL enqueue helper linked to the running crawler.

§storage: StorageHandle

Open default storage resources. For example, ctx.storage.dataset().push(&item) works when millipede_core::storage::DatasetExt is in scope.

§crawler: CrawlerHandle

Weak handle back to the running crawler.

Trait Implementations§

Source§

impl Clone for HttpContext

Source§

fn clone(&self) -> HttpContext

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for HttpContext

Source§

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

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

impl HasRequest for HttpContext

Source§

fn request(&self) -> &Request

Returns the request associated with this context.

Auto Trait Implementations§

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more