pub struct ResultStore { /* private fields */ }Expand description
Shared result store for sub-agent communication
Implementations§
Source§impl ResultStore
impl ResultStore
Sourcepub async fn publish(
&self,
key: impl Into<String>,
producer_id: impl Into<String>,
value: impl Serialize,
tags: Vec<String>,
expires_at: Option<DateTime<Utc>>,
) -> Result<SharedResult>
pub async fn publish( &self, key: impl Into<String>, producer_id: impl Into<String>, value: impl Serialize, tags: Vec<String>, expires_at: Option<DateTime<Utc>>, ) -> Result<SharedResult>
Publish a result to the store
Sourcepub async fn get(&self, key: &str) -> Option<SharedResult>
pub async fn get(&self, key: &str) -> Option<SharedResult>
Get a result by key
Sourcepub async fn get_typed<T: for<'de> Deserialize<'de>>(
&self,
key: &str,
) -> Result<T>
pub async fn get_typed<T: for<'de> Deserialize<'de>>( &self, key: &str, ) -> Result<T>
Get a result and deserialize it to a specific type
Query results by tags
Sourcepub async fn query_by_producer(&self, producer_id: &str) -> Vec<SharedResult>
pub async fn query_by_producer(&self, producer_id: &str) -> Vec<SharedResult>
Query results by producer
Sourcepub async fn query_by_prefix(&self, prefix: &str) -> Vec<SharedResult>
pub async fn query_by_prefix(&self, prefix: &str) -> Vec<SharedResult>
Query results by key prefix
Sourcepub fn subscribe(&self) -> Receiver<ResultNotification>
pub fn subscribe(&self) -> Receiver<ResultNotification>
Subscribe to result notifications
Sourcepub async fn register_subscription(
&self,
subtask_id: impl Into<String>,
pattern: SubscriptionPattern,
)
pub async fn register_subscription( &self, subtask_id: impl Into<String>, pattern: SubscriptionPattern, )
Register a subscription pattern for a subtask
Sourcepub async fn unregister_subscriptions(&self, subtask_id: &str)
pub async fn unregister_subscriptions(&self, subtask_id: &str)
Unregister all subscriptions for a subtask
Sourcepub fn matches_pattern(
result: &SharedResult,
pattern: &SubscriptionPattern,
) -> bool
pub fn matches_pattern( result: &SharedResult, pattern: &SubscriptionPattern, ) -> bool
Check if a result matches a subscription pattern
Sourcepub async fn get_all(&self) -> Vec<SharedResult>
pub async fn get_all(&self) -> Vec<SharedResult>
Get all results (for debugging/inspection)
Sourcepub async fn cleanup_expired(&self) -> usize
pub async fn cleanup_expired(&self) -> usize
Remove expired results
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for ResultStore
impl !RefUnwindSafe for ResultStore
impl Send for ResultStore
impl Sync for ResultStore
impl Unpin for ResultStore
impl !UnwindSafe for ResultStore
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
Apply a transformation to the response body. Read more
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