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> 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 moresource§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoSql for T
impl<T> IntoSql for T
source§fn into_sql<T>(self) -> Self::Expressionwhere
Self: AsExpression<T> + Sized,
T: SqlType + TypedExpressionType,
fn into_sql<T>(self) -> Self::Expressionwhere
Self: AsExpression<T> + Sized,
T: SqlType + TypedExpressionType,
Convert
self
to an expression for Diesel’s query builder. Read moresource§fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expressionwhere
&'a Self: AsExpression<T>,
T: SqlType + TypedExpressionType,
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expressionwhere
&'a Self: AsExpression<T>,
T: SqlType + TypedExpressionType,
Convert
&self
to an expression for Diesel’s query builder. Read more