#![deny(unsafe_code)]
#![warn(missing_docs)]
mod errors;
mod traits;
pub mod types;
pub use errors::{
DialectError, ObservabilityError, RouteError, RuntimeError, SignerError, UpstreamError,
};
#[allow(deprecated)]
pub use traits::RouterPlugin;
pub use traits::{
ApiKeyAwareSignerFactory, FilterError, FilterOutput, FilterPlugin, ObservabilityHook,
PluginRuntime, Signer, SignerFactory, UpstreamDialect,
};
pub use types::{
CredentialStrategy, InternalError, InternalErrorKind, InternalErrorStage, ObserveEvent,
PerCandidateReason, PluginManifest, Principal, PrincipalKind, PrincipalQuotas, RateLimitKind,
RateLimitObservation, RequestContext, RetryDecision, RouteDecision, RoutingTrace,
ShapedRequest, ShapedRequestBuilder, SignedRequest, SigningCapability,
SubscriptionQuotaCandidateSnapshot, SubscriptionQuotaDataState, TerminalStrategy, Upstream,
UpstreamCandidate, UpstreamKind, 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_CACHE_AFFINITY_WIRE_VERSION: u8 = 3;
mod private {
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub(crate) struct Seal;
}