1#![deny(unsafe_code)]
18#![warn(missing_docs)]
19
20mod errors;
21mod traits;
22pub mod types;
23
24pub use errors::{DialectError, ObservabilityError, RouteError, SignerError, UpstreamError};
25pub use traits::{
26 ApiKeyAwareSignerFactory, FilterError, FilterOutput, FilterPlugin, ObservabilityHook,
27 RouterPlugin, Signer, SignerFactory, UpstreamDialect,
28};
29pub use types::{
30 CredentialStrategy, GLOBAL_PRINCIPAL, InternalError, InternalErrorKind, InternalErrorStage,
31 ObserveEvent, PerCandidateReason, PluginManifest, PluginSlot, Principal, PrincipalKind,
32 PrincipalQuotas, RateLimitKind, RateLimitObservation, RequestContext, RetryDecision,
33 RouteDecision, RoutingTrace, ShapedRequest, ShapedRequestBuilder, SignedRequest,
34 SigningCapability, SlotKey, SubscriptionQuotaCandidateSnapshot, SubscriptionQuotaDataState,
35 TerminalStrategy, Upstream, UpstreamCandidate, UpstreamKind, default_pure, shape_request,
36 sign_request,
37};
38
39pub const BUILTIN_CACHE_AFFINITY_ID: uuid::Uuid = uuid::Uuid::from_u128(1);
41
42pub const BUILTIN_CACHE_AFFINITY_NAME: &str = "cache-affinity";
44
45pub const BUILTIN_SUBSCRIPTION_PREFERENCE_ID: uuid::Uuid = uuid::Uuid::from_u128(2);
47
48pub const BUILTIN_SUBSCRIPTION_PREFERENCE_NAME: &str = "subscription-preference";
50
51mod private {
52 #[derive(Clone, Copy, Debug, Eq, PartialEq)]
53 pub(crate) struct Seal;
54}