pub enum FlowControlMode {
FailClosed,
FailOpen,
WaitAndRetry,
}Expand description
Flow control behavior when an agent signals it cannot accept requests.
When an agent sends a flow control “pause” signal, this determines whether requests should fail immediately or be allowed through.
Variants§
FailClosed
Fail requests when agent is paused (default, safer).
Returns AgentProtocolError::FlowControlPaused immediately.
Use this when you want strict backpressure and can handle
the error at the caller (e.g., return 503 to client).
FailOpen
Allow requests through even when agent is paused.
Requests proceed without agent processing. Use this when agent processing is optional (e.g., logging, analytics) and you prefer availability over consistency.
WaitAndRetry
Queue requests briefly, then fail if still paused.
Waits up to flow_control_wait_timeout for the agent to
resume before failing. Useful for transient pauses.
Trait Implementations§
Source§impl Clone for FlowControlMode
impl Clone for FlowControlMode
Source§fn clone(&self) -> FlowControlMode
fn clone(&self) -> FlowControlMode
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FlowControlMode
impl Debug for FlowControlMode
Source§impl Default for FlowControlMode
impl Default for FlowControlMode
Source§fn default() -> FlowControlMode
fn default() -> FlowControlMode
Source§impl PartialEq for FlowControlMode
impl PartialEq for FlowControlMode
impl Copy for FlowControlMode
impl Eq for FlowControlMode
impl StructuralPartialEq for FlowControlMode
Auto Trait Implementations§
impl Freeze for FlowControlMode
impl RefUnwindSafe for FlowControlMode
impl Send for FlowControlMode
impl Sync for FlowControlMode
impl Unpin for FlowControlMode
impl UnwindSafe for FlowControlMode
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request