pub struct RouteSpec {Show 23 fields
pub summary: &'static str,
pub description: &'static str,
pub operation_id: &'static str,
pub tags: &'static [&'static str],
pub security: &'static [&'static str],
pub status_code: Option<u16>,
pub deprecated: bool,
pub params: &'static [ParamSpec],
pub has_body: bool,
pub body_schema: Option<fn() -> Value>,
pub query_schema: Option<fn() -> Value>,
pub response_schema: Option<fn() -> Value>,
pub cache_ttl_secs: u64,
pub cache_key: &'static str,
pub api_version: &'static str,
pub sunset: &'static str,
pub idempotent_ttl_secs: u64,
pub policies: &'static [&'static str],
pub audit_action: &'static str,
pub audit_resource: &'static str,
pub timeout_ms: u64,
pub transactional: bool,
pub mask_fields: &'static [&'static str],
}Fields§
§summary: &'static str§description: &'static str§operation_id: &'static str§security: &'static [&'static str]§status_code: Option<u16>§deprecated: bool§params: &'static [ParamSpec]§has_body: bool§body_schema: Option<fn() -> Value>§query_schema: Option<fn() -> Value>§response_schema: Option<fn() -> Value>§cache_ttl_secs: u64#[CacheTTL(N)] — seconds. 0/None disables the cache interceptor for
this route regardless of #[UseInterceptors(CacheInterceptor)].
cache_key: &'static str#[CacheKey("template")] — empty string falls back to
method + ' ' + path + '?' + query.
api_version: &'static str#[Version("v1")] on the controller — empty string = unversioned.
The version is also baked into the mounted path (/v1/...).
sunset: &'static str#[Deprecated(sunset = "YYYY-MM-DD")] — when non-empty the boundary
adds RFC 8594 Deprecation/Sunset response headers.
idempotent_ttl_secs: u64#[Idempotent(ttl = "…")] — TTL seconds; 0 = not idempotent.
Surfaces the Idempotency-Key header + 409 + replay header in OpenAPI.
policies: &'static [&'static str]#[RequirePolicies("…")] — ABAC actions gating this route.
audit_action: &'static str#[AuditLog(action, resource)] — empty action = no audit.
audit_resource: &'static str§timeout_ms: u64#[Timeout("…")] — milliseconds; 0 = no route deadline.
transactional: bool#[Transactional] present on the handler.
mask_fields: &'static [&'static str]#[MaskFields("…")] — route-local PII rules (surfaced in OpenAPI).
Auto Trait Implementations§
impl Freeze for RouteSpec
impl RefUnwindSafe for RouteSpec
impl Send for RouteSpec
impl Sync for RouteSpec
impl Unpin for RouteSpec
impl UnsafeUnpin for RouteSpec
impl UnwindSafe for RouteSpec
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> 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> 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