Route

Struct Route 

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

An intercepted network request that can be fulfilled, continued, or aborted.

When a request matches a route pattern, a Route is passed to the handler. The handler must call one of fulfill(), continue_(), abort(), or fallback() to resolve the request.

Implementations§

Source§

impl Route

Source

pub fn request(&self) -> &Request

Get the intercepted request.

Source

pub async fn is_handled(&self) -> bool

Check if this route has been handled.

Source

pub fn is_response_stage(&self) -> bool

Check if this route is at the response stage.

Source

pub fn response_status(&self) -> Option<u16>

Get the response status code (if at response stage).

Source

pub fn response_headers(&self) -> Option<&[HeaderEntry]>

Get the response headers (if at response stage).

Source

pub async fn response_body(&self) -> Result<Option<Vec<u8>>, NetworkError>

Get the response body (if at response stage).

§Errors

Returns an error if not at response stage or body cannot be fetched.

Source

pub fn fulfill(&self) -> FulfillBuilder<'_>

Fulfill the request with a custom response.

§Example
use viewpoint_core::Route;

route.fulfill()
    .status(200)
    .content_type("application/json")
    .body(r#"{"success": true}"#)
    .send()
    .await?;
Source

pub fn continue_(&self) -> ContinueBuilder<'_>

Continue the request with optional modifications.

§Example
use viewpoint_core::Route;

// Continue unchanged
route.continue_().send().await?;

// Modify the request
route.continue_()
    .header("X-Custom", "value")
    .send()
    .await?;
Source

pub async fn abort(&self) -> Result<(), NetworkError>

Abort the request with a generic error.

§Errors

Returns an error if the abort fails.

Source

pub async fn abort_with(&self, error: AbortError) -> Result<(), NetworkError>

Abort the request with a specific error.

§Errors

Returns an error if the abort fails.

Source

pub async fn fallback(&self) -> Result<(), NetworkError>

Pass this request to the next matching route handler.

If no other handlers match, the request continues to the server.

§Errors

Returns an error if the fallback fails.

Source

pub fn fetch(&self) -> FetchBuilder<'_>

Fetch the actual response from the server, allowing inspection/modification.

§Example
use viewpoint_core::Route;

let response = route.fetch().send().await?;
println!("Status: {}", response.status);

// Modify and send to page
route.fulfill()
    .response(&response)
    .header("X-Modified", "true")
    .send()
    .await?;
Source

pub async fn fetch_with_timeout( &self, timeout: Duration, ) -> Result<FetchedResponse<'_>, NetworkError>

Fetch the response with a timeout.

Trait Implementations§

Source§

impl Clone for Route

Source§

fn clone(&self) -> Route

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

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Route

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Route

§

impl !RefUnwindSafe for Route

§

impl Send for Route

§

impl Sync for Route

§

impl Unpin for Route

§

impl !UnwindSafe for Route

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: 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: 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> Same for T

Source§

type Output = T

Should always be Self
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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