pub enum ProjectedQueryOutcome {
Ready {
fields: Vec<String>,
primary_key_fields: Vec<String>,
rows: Vec<ProjectedReadyRow>,
frontier: ProjectionFrontier,
head: ProjectionFrontier,
commit_token: Option<CommitToken>,
},
ReadyAggregates {
group_key_fields: Vec<String>,
aggregates: Vec<ProjectedAggregate>,
groups: Vec<ProjectedAggregateGroup>,
frontier: ProjectionFrontier,
head: ProjectionFrontier,
commit_token: Option<CommitToken>,
},
Lagging {
required: ProjectionFrontier,
current: ProjectionFrontier,
head: ProjectionFrontier,
lag_sequences: Option<u64>,
retry_after: Option<Duration>,
},
Building {
applied_through: ProjectionFrontier,
head: ProjectionFrontier,
},
Rebuilding {
reason: ProjectedRebuildingReason,
progress_applied: u64,
progress_total: u64,
},
Degraded {
reason: ProjectedDegradedReason,
current: ProjectionFrontier,
},
Invalid {
expected_fingerprint: Vec<u8>,
found_fingerprint: Vec<u8>,
},
}Expand description
Typed projected-query outcome mirroring the wire oneof arms.
Variants§
Ready
Published snapshot under the requested freshness policy.
The select/primary-key split depends on the requested encoding, because the row-oriented wire arm carries no separate primary-key vector:
ProjectedResponseEncoding::Packed—fieldsare exactly the selected projected fields,primary_key_fieldsare the entity primary-key components, and each row’scells/primary_keyalign with them respectively.ProjectedResponseEncoding::Row—primary_key_fieldsis always empty and every row’sprimary_keyis empty. Primary-key names that were not selected are appended by the server tofields, so they arrive as trailingcells. RequestPackedwhen the split matters.
Fields
fields: Vec<String>Projected field names in wire order for each row’s cells.
Under Row encoding this also carries non-selected primary-key
names appended after the selected fields.
primary_key_fields: Vec<String>Entity primary-key field names aligned with each row’s primary_key.
Always empty under Row encoding (see the variant documentation).
rows: Vec<ProjectedReadyRow>Matching rows (primary_key empty under Row encoding).
frontier: ProjectionFrontierServed projection frontier.
head: ProjectionFrontierApplication head known at serve time.
commit_token: Option<CommitToken>Commit token corresponding to the served frontier when sequenced.
ReadyAggregates
Published snapshot answering an aggregate or grouped request.
Answers every request carrying at least one
ProjectedAggregate, grouped or not; a whole-set aggregate arrives
as exactly one group with an empty keys list. The requested
ProjectedResponseEncoding does not apply to this shape.
groups is in the server’s deterministic canonical value order over
the group keys (or the requested group-key order with canonical
ascending tie-breaking).
Fields
aggregates: Vec<ProjectedAggregate>The request’s aggregate functions echoed back; column order for
every group’s values.
groups: Vec<ProjectedAggregateGroup>Groups in server order.
frontier: ProjectionFrontierServed projection frontier.
head: ProjectionFrontierApplication head known at serve time.
commit_token: Option<CommitToken>Commit token corresponding to the served frontier when sequenced.
Lagging
Freshness policy not yet satisfied.
Fields
required: ProjectionFrontierRequired frontier derived from the causal token or bounded policy.
current: ProjectionFrontierCurrent projection frontier.
head: ProjectionFrontierApplication head.
Building
Catch-up before first publication.
Fields
applied_through: ProjectionFrontierProcessed position during catch-up.
head: ProjectionFrontierKnown application head.
Rebuilding
Rebuild in progress.
Fields
reason: ProjectedRebuildingReasonClosed reason code.
Degraded
Degraded health while still identified.
Fields
reason: ProjectedDegradedReasonClosed reason code.
current: ProjectionFrontierCurrent frontier while degraded.
Invalid
Durable definition fingerprint mismatch.
Trait Implementations§
Source§impl Clone for ProjectedQueryOutcome
impl Clone for ProjectedQueryOutcome
Source§fn clone(&self) -> ProjectedQueryOutcome
fn clone(&self) -> ProjectedQueryOutcome
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ProjectedQueryOutcome
impl Debug for ProjectedQueryOutcome
impl Eq for ProjectedQueryOutcome
Source§impl PartialEq for ProjectedQueryOutcome
impl PartialEq for ProjectedQueryOutcome
Source§fn eq(&self, other: &ProjectedQueryOutcome) -> bool
fn eq(&self, other: &ProjectedQueryOutcome) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for ProjectedQueryOutcome
Auto Trait Implementations§
impl Freeze for ProjectedQueryOutcome
impl RefUnwindSafe for ProjectedQueryOutcome
impl Send for ProjectedQueryOutcome
impl Sync for ProjectedQueryOutcome
impl Unpin for ProjectedQueryOutcome
impl UnsafeUnpin for ProjectedQueryOutcome
impl UnwindSafe for ProjectedQueryOutcome
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,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].