Skip to main content

Extension

Trait Extension 

pub trait Extension:
    Any
    + Send
    + Sync
    + Debug
    + 'static { }
Expand description

Extension is type which can be stored inside an Extensions store

This is has to be manually implement or can be implemented using #[derive(Extension)]

We have not implemented this for any container types:

  • Arc<T>: sounds nice, but by not implement it, it has become impossible to misuse Extensions::insert() with Extensions::insert_arc(). Otherwise this is very tricky and error prone
  • Vec<T>: Collections should use the new type pattern to give it a meaningfull name, and to prevent collisions

There might be valid use cases for implementing it for other type of containers, so in case you run into these open a Github issue and we can see if implementing it makes sense

§Extension Tags

Extensions can be tagged with one or more categories using the #[extension(tags(tag1, tag2))] attribute on the derive macro. This generates implementations for the corresponding marker traits below, which groups them in rust docs

ⓘ
#[derive(Debug, Clone, Extension)]
#[extension(tags(tls, net))]
pub struct SecureTransport(..);

Types that implement Extension manually can opt into tagged docs by implementing the marker trait(s) directly:

ⓘ
impl Extension for MyType {}
impl HttpExtension for MyType {}

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

§

impl Extension for OriginalRouterUri

Implementors§

§

impl Extension for AbortController

§

impl Extension for AbortIo

§

impl Extension for AcceptedWebSocketProtocol

§

impl Extension for AlpnPolicy

§

impl Extension for AltSvcObserverExtension

§

impl Extension for AltSvcReceivedAt

§

impl Extension for AltSvcSender

§

impl Extension for Basic

§

impl Extension for BodyLimit

§

impl Extension for BoringAlps

§

impl Extension for BoringCertCompression

§

impl Extension for BoringCipherSuites

§

impl Extension for BoringClientHelloPadding

§

impl Extension for BoringDelegatedCredentials

§

impl Extension for BoringEncryptedClientHello

§

impl Extension for BoringExtensionOrder

§

impl Extension for BoringExtensionPresence

§

impl Extension for BoringGrease

§

impl Extension for BoringGreaseSignatureSchemes

§

impl Extension for BoringKeyShares

§

impl Extension for BoringMaxVersion

§

impl Extension for BoringMinVersion

§

impl Extension for BoringOcspStapling

§

impl Extension for BoringPermuteExtensions

§

impl Extension for BoringRecordSizeLimit

§

impl Extension for BoringRequestedTrustAnchors

§

impl Extension for BoringServerCertCompression

§

impl Extension for BoringServerCertIssuer

§

impl Extension for BoringServerCipherSuites

§

impl Extension for BoringServerPaddingRequest

§

impl Extension for BoringServerSignatureSchemes

§

impl Extension for BoringServerSupportedGroups

§

impl Extension for BoringServerVerifyCertStore

§

impl Extension for BoringSignatureSchemes

§

impl Extension for BoringSignedCertTimestamps

§

impl Extension for BoringSupportedGroups

§

impl Extension for BoringTls12SessionTickets

§

impl Extension for BytesRWTrackerHandle

§

impl Extension for CancelIo

§

impl Extension for CapsuleObservation

§

impl Extension for ClientControlPreferences

§

impl Extension for ClientHandshake

§

impl Extension for ClientSettingsProfile

§

impl Extension for CloseDelimitedResponse

§

impl Extension for ConnectIpMode

§

impl Extension for ConnectionAdmission

§

impl Extension for ConnectionAttempt

§

impl Extension for ConnectionBootstrapRequest

§

impl Extension for ConnectionClose

§

impl Extension for ConnectionContext

§

impl Extension for ConnectionHealthWatcher

§

impl Extension for ConnectionId

§

impl Extension for ConnectionPolicyScope

§

impl Extension for ConnectionQlogControl

§

impl Extension for ConnectionReuse

§

impl Extension for ConnectionSelection

§

impl Extension for ConnectorTarget

§

impl Extension for ConnectorTargetStream

§

impl Extension for ConnectorTransportProtocol

§

impl Extension for ControlConnection

§

impl Extension for DecompressedFrom

§

impl Extension for DnsAddresssResolverOverwrite

§

impl Extension for DnsResolveIpMode

§

impl Extension for DnsResolveMode

§

impl Extension for DoNotRetry

§

impl Extension for DoNotWriteRequest

§

impl Extension for DoNotWriteResponse

§

impl Extension for DpiProxyCredential

§

impl Extension for DrawKey

§

impl Extension for DynTlsServerCertChainPolicy

§

impl Extension for EarlyFrameCapture

§

impl Extension for EchGrease

§

impl Extension for EncoderPreferences

§

impl Extension for EstablishedHttpService

§

impl Extension for EstablishedProxyRoute

§

impl Extension for Extension

§

impl Extension for FallbackHttpVersion

§

impl Extension for FastCgiHttpEnv

§

impl Extension for FieldSectionBase

§

impl Extension for ForbiddenTrailers

§

impl Extension for rama::net::forwarded::Forwarded

§

impl Extension for rama::http::headers::forwarded::Forwarded

§

impl Extension for ForwardedSelectionPolicy

§

impl Extension for GeoLocation

§

impl Extension for H2ClientContextParams

§

impl Extension for H2ServerContextParams

§

impl Extension for H2SettingsLimits

§

impl Extension for H3Observer

§

impl Extension for H3RequestObservation

§

impl Extension for HaProxyCommand

§

impl Extension for HaProxyTlvs

§

impl Extension for HarFilePath

§

impl Extension for HeaderByteLength

§

impl Extension for HeaderPreferences

§

impl Extension for Http1ClientContextParams

§

impl Extension for Http3Coalescing

§

impl Extension for HttpDatagrams

§

impl Extension for HttpExchangeId

§

impl Extension for HttpProxyConnectResponseHeaders

§

impl Extension for HttpRequestVersion

§

impl Extension for HttpServiceCandidates

§

impl Extension for HttpServiceSelection

§

impl Extension for HttpUpgradeCaptureGuard

§

impl Extension for HttpUpgradeContext

§

impl Extension for HttpUpgradeMitmRelayExtensions

§

impl Extension for HttpWebSocketRelayHandshakeRequest

§

impl Extension for HttpWebSocketRelayHandshakeResponse

§

impl Extension for InputCounterExtension

§

impl Extension for IntoResponseFailed

§

impl Extension for IpGeoInfo

§

impl Extension for MaxConcurrency

§

impl Extension for ModifyRustlsClientConfig

§

impl Extension for ModifyRustlsServerConfig

§

impl Extension for MultipartConfig

§

impl Extension for NativeDatagrams

§

impl Extension for NegotiatedTlsParameters

§

impl Extension for OnInformational

§

impl Extension for OnMalformedMessage

§

impl Extension for OnUpgrade

§

impl Extension for OriginalResponseBodyFraming

§

impl Extension for PathRouteCaptures

§

impl Extension for PeerH2Settings

§

impl Extension for PlaintextHttpProxyMode

§

impl Extension for PoolPartition

§

impl Extension for Preferences

§

impl Extension for PreferredEncoding

§

impl Extension for PreparedConnectionComponents

§

impl Extension for PreparedConnectionProfile

§

impl Extension for PreparedRequestProfile

§

impl Extension for PreserveClientHints

§

impl Extension for PreserveHeaderUserAgent

§

impl Extension for PriorityHandle

§

impl Extension for PriorityObserver

§

impl Extension for ProfilePreservationReport

§

impl Extension for ProfileSeed

§

impl Extension for ProfileSelectFallback

§

impl Extension for ProtectionError

§

impl Extension for rama::net::Protocol

§

impl Extension for rama::http::proto::ext::Protocol

§

impl Extension for Proxy

§

impl Extension for ProxyFilter

§

impl Extension for ProxyID

§

impl Extension for ProxyRoute

§

impl Extension for ProxyRouteIndex

§

impl Extension for ProxyRoutes

§

impl Extension for PseudoHeaderOrder

§

impl Extension for PseudoHeaderSensitivity

§

impl Extension for QuicObservation

§

impl Extension for QuicPeekRejection

§

impl Extension for QuicProfile

Available on crate feature std only.
§

impl Extension for ReasonPhrase

§

impl Extension for RelayWebSocketConfig

§

impl Extension for ReqmodResult

§

impl Extension for RequestComment

§

impl Extension for RequestHeaders

§

impl Extension for RequestId

§

impl Extension for RequestInitiator

§

impl Extension for RequestSelection

§

impl Extension for RequestTargetForm

§

impl Extension for RequestUri

§

impl Extension for ResetStream

§

impl Extension for RespmodResult

§

impl Extension for RustlsDynamicConfig

§

impl Extension for RustlsServerCertVerifier

§

impl Extension for SecureTransport

§

impl Extension for SelectedHttpService

§

impl Extension for SelectedUserAgentProfile

§

impl Extension for ServiceCapabilities

§

impl Extension for SingleMessageCompressionOverride

§

impl Extension for SocketInfo

§

impl Extension for Status

§

impl Extension for StreamMultiplexed

§

impl Extension for StreamTransformed

§

impl Extension for TargetHttpVersion

§

impl Extension for TimeoutCause

§

impl Extension for TlsAcceptorData

§

impl Extension for TlsAlpn

§

impl Extension for TlsClientAuth

§

impl Extension for TlsClientSessionDomain

§

impl Extension for TlsClientVerify

§

impl Extension for TlsDerivedPolicy

§

impl Extension for TlsKeyLog

§

impl Extension for TlsMitmClientAuthPolicy

§

impl Extension for TlsObservation

§

impl Extension for TlsPoolId

§

impl Extension for TlsProfile

§

impl Extension for TlsServerAuth

§

impl Extension for TlsServerAuthenticatedAliases

§

impl Extension for TlsServerAuthentication

§

impl Extension for TlsServerCertPins

§

impl Extension for TlsServerName

§

impl Extension for TlsServerTrust

§

impl Extension for TlsServerVerify

§

impl Extension for TlsSessionProfileScope

§

impl Extension for TlsStoreClientCertChain

§

impl Extension for TlsStoreServerCertChain

§

impl Extension for TlsStoreServerHello

§

impl Extension for TlsSupportedVersions

§

impl Extension for TlsTunnel

§

impl Extension for TlsTunnelRoute

§

impl Extension for TraceContext

§

impl Extension for UnixSocketInfo

§

impl Extension for UriParams

§

impl Extension for UserAgent

§

impl Extension for UserAgentObservation

§

impl Extension for UserId

§

impl Extension for UsernameLabels

§

impl Extension for VariantPins

§

impl Extension for WebSocketCapture

§

impl Extension for WebSocketLimits

§

impl Extension for WebSocketRelayInjector

§

impl Extension for WebSocketRelayReadAhead

§

impl<'a> Extension for GrpcMethod<'a>
where 'a: 'static,

§

impl<C, ID> Extension for LruDropPool<C, ID>
where C: Send + 'static, ID: Send + Sync + Debug + 'static,

§

impl<C, ID> Extension for MultiplexPool<C, ID>
where C: Send + Sync + 'static, ID: Send + Sync + Debug + 'static,

§

impl<T> Extension for Egress<T>
where T: Any + Send + Sync + Debug + 'static,

§

impl<T> Extension for Ingress<T>
where T: Any + Send + Sync + Debug + 'static,