#![deny(unsafe_code)]
#![warn(missing_docs)]
mod errors;
mod traits;
pub mod types;
pub use errors::{DialectError, ObservabilityError, RouteError, SignerError, UpstreamError};
pub use traits::{
ApiKeyAwareSignerFactory, FilterError, FilterOutput, FilterPlugin, ObservabilityHook,
RouterPlugin, Signer, SignerFactory, UpstreamDialect,
};
pub use types::{
CredentialStrategy, GLOBAL_PRINCIPAL, InternalError, InternalErrorKind, InternalErrorStage,
ObserveEvent, PerCandidateReason, PluginManifest, PluginSlot, Principal, PrincipalKind,
PrincipalQuotas, RateLimitKind, RateLimitObservation, RequestContext, RetryDecision,
RouteDecision, RoutingTrace, ShapedRequest, ShapedRequestBuilder, SignedRequest,
SigningCapability, SlotKey, SubscriptionQuotaCandidateSnapshot, SubscriptionQuotaDataState,
TerminalStrategy, Upstream, UpstreamCandidate, UpstreamKind, default_pure, shape_request,
sign_request,
};
pub const BUILTIN_CACHE_AFFINITY_ID: uuid::Uuid = uuid::Uuid::from_u128(1);
pub const BUILTIN_CACHE_AFFINITY_NAME: &str = "cache-affinity";
pub const BUILTIN_SUBSCRIPTION_PREFERENCE_ID: uuid::Uuid = uuid::Uuid::from_u128(2);
pub const BUILTIN_SUBSCRIPTION_PREFERENCE_NAME: &str = "subscription-preference";
mod private {
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub(crate) struct Seal;
}