pub struct RateLimitStore;Expand description
Persistent store for rate limit state.
Follows AgentRegistry pattern: write-through to sqlitegraph on mutations, load from DB on startup.
Implementations§
Source§impl RateLimitStore
impl RateLimitStore
pub fn new() -> Self
Sourcepub fn persist(&self, graph: &SqliteGraph, state: &RateLimitState) -> Result<()>
pub fn persist(&self, graph: &SqliteGraph, state: &RateLimitState) -> Result<()>
Persist rate limit state to sqlitegraph.
Sourcepub fn load(
&self,
graph: &SqliteGraph,
agent_id: &str,
) -> Result<Option<RateLimitState>>
pub fn load( &self, graph: &SqliteGraph, agent_id: &str, ) -> Result<Option<RateLimitState>>
Load rate limit state from sqlitegraph.
Sourcepub fn load_all(&self, graph: &SqliteGraph) -> Result<Vec<RateLimitState>>
pub fn load_all(&self, graph: &SqliteGraph) -> Result<Vec<RateLimitState>>
Load all rate limit states from sqlitegraph.
Sourcepub fn persist_ban(
&self,
graph: &SqliteGraph,
agent_id: &str,
reason: &str,
) -> Result<()>
pub fn persist_ban( &self, graph: &SqliteGraph, agent_id: &str, reason: &str, ) -> Result<()>
Persist a ban to sqlitegraph.
Sourcepub fn remove_ban(&self, graph: &SqliteGraph, agent_id: &str) -> Result<()>
pub fn remove_ban(&self, graph: &SqliteGraph, agent_id: &str) -> Result<()>
Remove a ban from sqlitegraph.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for RateLimitStore
impl RefUnwindSafe for RateLimitStore
impl Send for RateLimitStore
impl Sync for RateLimitStore
impl Unpin for RateLimitStore
impl UnsafeUnpin for RateLimitStore
impl UnwindSafe for RateLimitStore
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
Mutably borrows from an owned value. Read more
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using HTTP status codes. Read more
Source§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using gRPC headers. Read more
Source§fn set_request_id<M>(
self,
header_name: HeaderName,
make_request_id: M,
) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
fn set_request_id<M>(
self,
header_name: HeaderName,
make_request_id: M,
) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
Add request id header and extension. Read more
Source§fn set_x_request_id<M>(self, make_request_id: M) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
fn set_x_request_id<M>(self, make_request_id: M) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
Add request id header and extension, using
x-request-id as the header name. Read moreSource§fn propagate_request_id(
self,
header_name: HeaderName,
) -> PropagateRequestId<Self>where
Self: Sized,
fn propagate_request_id(
self,
header_name: HeaderName,
) -> PropagateRequestId<Self>where
Self: Sized,
Propgate request ids from requests to responses. Read more
Source§fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
Self: Sized,
fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
Self: Sized,
Propgate request ids from requests to responses, using
x-request-id as the header name. Read more