Skip to main content

QueryGate

Struct QueryGate 

Source
pub struct QueryGate { /* private fields */ }
Expand description

Enforces single-flight query execution per app key with daemon-first cancel.

Implementations§

Source§

impl QueryGate

Source

pub fn new() -> Self

Construct an empty gate.

Source

pub fn acquire( &self, app_key: &str, cancel: CancelFn, send_cancel: Option<SendCancelFn>, ) -> Result<(), ErrQueryBusy>

Reserve app_key for one agent turn.

Returns ErrQueryBusy when a query is already in flight. Pass the local cancel callback for the query’s timeout context (the same one the turn loop derives from). send_cancel, when provided, sends the daemon cancel and is invoked from Self::cancel on a detached 10s timeout.

Source

pub async fn cancel(&self, app_key: &str) -> Result<()>

Cooperatively stop a running query for app_key.

Sends the daemon cancel first (10s timeout, detached from the caller’s cancellation), then invokes the local cancel callback. Returns Ok(()) when no query is in flight (intent already satisfied).

Source

pub fn release(&self, app_key: &str)

Clear the gate for app_key without sending a daemon cancel.

Call when a query completes normally (success or local failure) so the next turn can acquire.

Source

pub fn set_send_cancel(&self, app_key: &str, send_cancel: SendCancelFn)

Update the daemon-cancel sender for an already-acquired session.

Source

pub fn replace_cancel(&self, app_key: &str, cancel: CancelFn)

Update the local cancel callback for an already-acquired session.

Source

pub fn is_active(&self, app_key: &str) -> bool

Report whether a query is in flight for app_key.

Trait Implementations§

Source§

impl Default for QueryGate

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more