Struct gotham_restful::cors::CorsConfig
source · pub struct CorsConfig {
pub origin: Origin,
pub headers: Headers,
pub max_age: u64,
pub credentials: bool,
}
Expand description
This is the configuration that the CORS handler will follow. Its default configuration is basically not to touch any responses, resulting in the browser’s default behaviour.
To change settings, you need to put this type into gotham’s State:
fn main() {
let cors = CorsConfig {
origin: Origin::Star,
..Default::default()
};
let (chain, pipelines) = single_pipeline(new_pipeline().add(cors).build());
gotham::start(
"127.0.0.1:8080",
build_router(chain, pipelines, |route| {
// your routing logic
})
);
}
This easy approach allows you to have one global cors configuration. If you prefer to have separate configurations for different scopes, you need to register the middleware inside your routing logic:
let pipelines = new_pipeline_set();
// The first cors configuration
let cors_a = CorsConfig {
origin: Origin::Star,
..Default::default()
};
let (pipelines, chain_a) = pipelines.add(new_pipeline().add(cors_a).build());
// The second cors configuration
let cors_b = CorsConfig {
origin: Origin::Copy,
..Default::default()
};
let (pipelines, chain_b) = pipelines.add(new_pipeline().add(cors_b).build());
let pipeline_set = finalize_pipeline_set(pipelines);
gotham::start(
"127.0.0.1:8080",
build_router((), pipeline_set, |route| {
// routing without any cors config
route.with_pipeline_chain((chain_a, ()), |route| {
// routing with cors config a
});
route.with_pipeline_chain((chain_b, ()), |route| {
// routing with cors config b
});
})
);
Fields§
§origin: Origin
The allowed origins.
headers: Headers
The allowed headers.
max_age: u64
The amount of seconds that the preflight request can be cached.
credentials: bool
Whether or not the request may be made with supplying credentials.
Trait Implementations§
source§impl Clone for CorsConfig
impl Clone for CorsConfig
source§fn clone(&self) -> CorsConfig
fn clone(&self) -> CorsConfig
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for CorsConfig
impl Debug for CorsConfig
source§impl Default for CorsConfig
impl Default for CorsConfig
source§fn default() -> CorsConfig
fn default() -> CorsConfig
Returns the “default value” for a type. Read more
source§impl Middleware for CorsConfig
impl Middleware for CorsConfig
source§impl NewMiddleware for CorsConfig
impl NewMiddleware for CorsConfig
§type Instance = CorsConfig
type Instance = CorsConfig
The type of
Middleware
created by the NewMiddleware
.source§fn new_middleware(&self) -> Result<Self>
fn new_middleware(&self) -> Result<Self>
Create and return a new
Middleware
value.impl StateData for CorsConfig
Auto Trait Implementations§
impl RefUnwindSafe for CorsConfig
impl Send for CorsConfig
impl Sync for CorsConfig
impl Unpin for CorsConfig
impl UnwindSafe for CorsConfig
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> FromState for Twhere
T: StateData,
impl<T> FromState for Twhere
T: StateData,
source§fn try_borrow_from(state: &State) -> Option<&T>
fn try_borrow_from(state: &State) -> Option<&T>
Tries to borrow a value from the
State
storage. Read moresource§fn try_borrow_mut_from(state: &mut State) -> Option<&mut T>
fn try_borrow_mut_from(state: &mut State) -> Option<&mut T>
Tries to mutably borrow a value from the
State
storage. Read moresource§fn borrow_mut_from(state: &mut State) -> &mut T
fn borrow_mut_from(state: &mut State) -> &mut T
Mutably borrows a value from the
State
storage. Read more§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more