#[non_exhaustive]pub struct CorsConfig {
pub allow_origin: String,
pub allow_methods: String,
pub allow_headers: String,
pub max_age_secs: u32,
}Expand description
CORS configuration for A2A dispatchers.
§Examples
use a2a_protocol_server::dispatch::cors::CorsConfig;
// Allow all origins (development/testing).
let cors = CorsConfig::permissive();
// Restrict to a specific origin.
let cors = CorsConfig::new("https://my-app.example.com");#[non_exhaustive]: build it with CorsConfig::new or
CorsConfig::permissive and the with_* setters, which cover every
field; a struct literal is not available outside this crate, so a field
added later does not break callers.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.allow_origin: StringThe Access-Control-Allow-Origin value.
allow_methods: StringThe Access-Control-Allow-Methods value.
allow_headers: StringThe Access-Control-Allow-Headers value.
max_age_secs: u32The Access-Control-Max-Age value in seconds.
Implementations§
Source§impl CorsConfig
impl CorsConfig
Sourcepub fn new(allow_origin: impl Into<String>) -> CorsConfig
pub fn new(allow_origin: impl Into<String>) -> CorsConfig
Creates a new CorsConfig with the given allowed origin.
Sourcepub fn permissive() -> CorsConfig
pub fn permissive() -> CorsConfig
Creates a permissive CorsConfig that allows all origins.
Suitable for development or public APIs. For production use,
prefer CorsConfig::new with a specific origin.
Sourcepub fn with_allow_origin(self, origin: impl Into<String>) -> CorsConfig
pub fn with_allow_origin(self, origin: impl Into<String>) -> CorsConfig
Sets the Access-Control-Allow-Origin value.
Sourcepub fn with_allow_methods(self, methods: impl Into<String>) -> CorsConfig
pub fn with_allow_methods(self, methods: impl Into<String>) -> CorsConfig
Sets the Access-Control-Allow-Methods value.
Sourcepub fn with_allow_headers(self, headers: impl Into<String>) -> CorsConfig
pub fn with_allow_headers(self, headers: impl Into<String>) -> CorsConfig
Sets the Access-Control-Allow-Headers value, replacing the default
list — include content-type, a2a-version and whatever your clients
send, or their preflight fails.
Sourcepub const fn with_max_age_secs(self, secs: u32) -> CorsConfig
pub const fn with_max_age_secs(self, secs: u32) -> CorsConfig
Sets the Access-Control-Max-Age value in seconds.
Sourcepub fn apply_headers<B>(&self, resp: &mut Response<B>)
pub fn apply_headers<B>(&self, resp: &mut Response<B>)
Applies CORS headers to an existing HTTP response.
Trait Implementations§
Source§impl Clone for CorsConfig
impl Clone for CorsConfig
Source§fn clone(&self) -> CorsConfig
fn clone(&self) -> CorsConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for CorsConfig
impl RefUnwindSafe for CorsConfig
impl Send for CorsConfig
impl Sync for CorsConfig
impl Unpin for CorsConfig
impl UnsafeUnpin 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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§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> 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> ⓘ
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> ⓘ
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request