#[non_exhaustive]pub struct Capabilities {Show 15 fields
pub managed: bool,
pub query: QueryCaps,
pub destinations: DestinationCaps,
pub kv: KvCaps,
pub graph: bool,
pub forks: bool,
pub a2a_gateway: bool,
pub sessions: bool,
pub stream_tenancy: bool,
pub watch: bool,
pub authz: bool,
pub filters: FilterCaps,
pub versions: Option<OpVersions>,
pub backends: Vec<BackendDescriptor>,
pub hello: HelloOutcome,
}Expand description
What the connected infrastructure serves beyond the open SDK surface. The open
SDK works on Apache Iggy with everything off (OPEN). LaserData Cloud
reports a richer set at connect, lighting up the matching paths with no change
to the caller’s imports. Nothing here falls back to a working state on raw
Apache Iggy: when a capability is off, the matching call returns
LaserError::Unsupported.
Capabilities are grouped by where they live and what they depend on, rather
than a flat list of unrelated flags. managed is the root
(connected to a managed backend at all). The managed surfaces (query,
kv, graph, forks,
a2a_gateway) are served by that backend. A surface’s
sub-features nest under it (QueryCaps::consistency, KvCaps::cas) so a
dependent feature cannot be advertised apart from the surface it refines.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.managed: boolConnected to a managed backend (LaserData Cloud). The root managed switch: with no backend, every managed surface below is unavailable.
query: QueryCapsThe managed query surface (Laser::query) and the read-consistency it
serves.
destinations: DestinationCapsMaterialization destination declarations and managed checkpoint lifecycle.
kv: KvCapsThe managed key-value surface (Laser::kv) and its conditional-write
support.
graph: boolThe managed knowledge-graph surface (Laser::graph). Agentic memory
composes the query and graph surfaces, so it has no capability of its own.
forks: boolManaged copy-on-write forks of the read model (Laser::fork).
a2a_gateway: boolA managed A2A gateway (auth, streaming, persisted task store).
sessions: boolManaged reads of agent sessions in one stream.
stream_tenancy: boolThe deployment scopes every managed name to one stream, and each stream’s change feed rides its own ops topic.
watch: boolThe change feed (Laser::watch): ChangeRecords published after each
committed projector batch for a binding that opted into notify. Off
when the deployment does not publish the feed.
authz: boolThe authorization control surface (Laser::whoami and the role/binding
verbs). Fork-native, advertised by the AUTHZ feature bit.
filters: FilterCapsServer-side consumer filters, administered through a consumer group’s
filter() handle: native filtered reads and, with a managed backend,
the group policy catalog.
versions: Option<OpVersions>The wire op versions the server advertised in its AGDX_HELLO reply, or
None against Apache Iggy and pre-versioned servers. When present, the
SDK fails fast with the surface’s typed Version error before a round-trip
whenever its pinned op version is not the advertised one.
backends: Vec<BackendDescriptor>Structured, versioned, secret-free backend observations advertised at connect.
hello: HelloOutcomeWhat the AGDX_HELLO probe established at connect. A group consumer
reads natively only when the managed surfaces are positively absent.
Implementations§
Source§impl Capabilities
impl Capabilities
Sourcepub fn is_open_only(&self) -> bool
pub fn is_open_only(&self) -> bool
True when the connected infrastructure advertised nothing beyond the open
SDK (OPEN).
pub fn backend( &self, resource_id: BackendResourceId, ) -> Option<&BackendDescriptor>
pub fn enabled_backends(&self) -> impl Iterator<Item = &BackendDescriptor>
pub fn unready_backends(&self) -> impl Iterator<Item = &BackendDescriptor>
pub fn readiness_reasons( &self, resource_id: BackendResourceId, ) -> Option<&[BackendReadinessReason]>
pub fn is_ready(&self) -> bool
Sourcepub fn with_managed(self, value: bool) -> Self
pub fn with_managed(self, value: bool) -> Self
Returns a copy connected to a managed backend (the root switch).
Sourcepub fn with_query(self, value: bool) -> Self
pub fn with_query(self, value: bool) -> Self
Returns a copy with the managed query surface available.
Sourcepub fn with_query_consistency(self, level: Consistency) -> Self
pub fn with_query_consistency(self, level: Consistency) -> Self
Returns a copy advertising the strongest read-consistency the query surface serves.
Sourcepub fn with_query_keyword(self, value: bool) -> Self
pub fn with_query_keyword(self, value: bool) -> Self
Returns a copy advertising lexical relevance search on the query surface.
pub fn with_query_execution( self, paging: bool, cancellation: bool, status: bool, ) -> Self
pub fn with_destinations(self, value: bool) -> Self
pub fn with_destination_consistency( self, value: CheckpointReadConsistency, ) -> Self
Sourcepub fn with_kv(self, value: bool) -> Self
pub fn with_kv(self, value: bool) -> Self
Returns a copy with the managed key-value surface available.
Sourcepub fn with_kv_cas(self, value: bool) -> Self
pub fn with_kv_cas(self, value: bool) -> Self
Returns a copy advertising key-value compare-and-swap.
Sourcepub fn with_kv_fenced_leases(self, value: bool) -> Self
pub fn with_kv_fenced_leases(self, value: bool) -> Self
Returns a copy advertising the key-value fenced-lease contract.
Sourcepub fn with_kv_cas_fenced(self, value: bool) -> Self
pub fn with_kv_cas_fenced(self, value: bool) -> Self
Returns a copy advertising key-value fenced compare-and-swap.
Sourcepub fn with_graph(self, value: bool) -> Self
pub fn with_graph(self, value: bool) -> Self
Returns a copy with the managed graph surface available.
Sourcepub fn with_forks(self, value: bool) -> Self
pub fn with_forks(self, value: bool) -> Self
Returns a copy with managed forks available.
Sourcepub fn with_a2a_gateway(self, value: bool) -> Self
pub fn with_a2a_gateway(self, value: bool) -> Self
Returns a copy advertising the managed A2A gateway.
Sourcepub fn with_sessions(self, value: bool) -> Self
pub fn with_sessions(self, value: bool) -> Self
Returns a copy advertising managed session reads.
Sourcepub fn with_stream_tenancy(self, value: bool) -> Self
pub fn with_stream_tenancy(self, value: bool) -> Self
Returns a copy advertising stream tenancy.
Sourcepub fn with_filters(self, native: bool, catalog: bool) -> Self
pub fn with_filters(self, native: bool, catalog: bool) -> Self
Returns a copy advertising native consumer filters and, separately, the saved-filter catalog.
Sourcepub fn with_versions(self, value: Option<OpVersions>) -> Self
pub fn with_versions(self, value: Option<OpVersions>) -> Self
Returns a copy with the advertised wire op versions.
Sourcepub fn with_backends(self, value: Vec<BackendDescriptor>) -> Self
pub fn with_backends(self, value: Vec<BackendDescriptor>) -> Self
Returns a copy advertising the structured backend observations.
Sourcepub fn serves_consistency(&self, level: Consistency) -> bool
pub fn serves_consistency(&self, level: Consistency) -> bool
Whether the query surface serves read-consistency level. Because the
levels form a ladder, this is level <= self.query.consistency: Eventual
is always served, and a Strong surface subsumes a read-your-writes query.
An unknown future level is treated as not served (fail-safe).
Trait Implementations§
Source§impl Clone for Capabilities
impl Clone for Capabilities
Source§impl Debug for Capabilities
impl Debug for Capabilities
Source§impl Default for Capabilities
impl Default for Capabilities
impl Eq for Capabilities
Source§impl PartialEq for Capabilities
impl PartialEq for Capabilities
impl StructuralPartialEq for Capabilities
Auto Trait Implementations§
impl Freeze for Capabilities
impl RefUnwindSafe for Capabilities
impl Send for Capabilities
impl Sync for Capabilities
impl Unpin for Capabilities
impl UnsafeUnpin for Capabilities
impl UnwindSafe for Capabilities
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.