#[non_exhaustive]pub struct Supports {Show 24 fields
pub cancel_execution: bool,
pub change_priority: bool,
pub replay_execution: bool,
pub revoke_lease: bool,
pub read_execution_state: bool,
pub read_execution_info: bool,
pub get_execution_result: bool,
pub budget_admin: bool,
pub quota_admin: bool,
pub rotate_waitpoint_hmac_secret_all: bool,
pub seed_waitpoint_hmac_secret: bool,
pub list_pending_waitpoints: bool,
pub cancel_flow_header: bool,
pub cancel_flow_wait_timeout: bool,
pub cancel_flow_wait_indefinite: bool,
pub ack_cancel_member: bool,
pub claim_for_worker: bool,
pub prepare: bool,
pub subscribe_lease_history: bool,
pub subscribe_completion: bool,
pub subscribe_signal_delivery: bool,
pub subscribe_instance_tags: bool,
pub stream_durable_summary: bool,
pub stream_best_effort_live: bool,
}Expand description
Per-capability boolean support surface. Flat named-field shape so
consumers can dot-access (e.g. caps.supports.cancel_execution)
instead of map lookup. #[non_exhaustive] protects future
additions from source-breaking consumers; construct via
Supports::none or by returning one from
crate::engine_backend::EngineBackend::capabilities.
§Grouping policy
One bool per operator-visible HTTP surface; admin-only surfaces
with many sibling methods roll up to a single bool (e.g.
Self::budget_admin covers create_budget / report_usage /
reset_budget / get_budget_status / report_usage_admin;
Self::quota_admin covers create_quota_policy). Cairn’s
operator UI grey-renders at the group level; fine-grained
pre-dispatch checks still use
crate::engine_error::EngineError::Unavailable.
§Field order
Per cairn #277 “in the same order as the parity matrix so cairn
can consume by copy-paste.” Keep in sync with
docs/POSTGRES_PARITY_MATRIX.md.
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.cancel_execution: boolcancel_execution.
change_priority: boolchange_priority.
replay_execution: boolreplay_execution.
revoke_lease: boolrevoke_lease.
read_execution_state: boolread_execution_state.
read_execution_info: boolread_execution_info.
get_execution_result: boolget_execution_result.
budget_admin: boolCovers create_budget + report_usage + reset_budget +
get_budget_status + report_usage_admin.
quota_admin: boolCovers create_quota_policy.
rotate_waitpoint_hmac_secret_all: boolrotate_waitpoint_hmac_secret_all.
seed_waitpoint_hmac_secret: boolseed_waitpoint_hmac_secret (#280).
list_pending_waitpoints: boollist_pending_waitpoints.
cancel_flow_header: boolcancel_flow_header.
cancel_flow_wait_timeout: boolcancel_flow with CancelFlowWait::WaitTimeout(..).
cancel_flow_wait_indefinite: boolcancel_flow with CancelFlowWait::WaitIndefinite.
ack_cancel_member: boolack_cancel_member.
claim_for_worker: boolclaim_for_worker (requires a wired scheduler on Valkey;
Postgres-native on Postgres).
prepare: boolprepare does non-trivial work (e.g. Valkey FUNCTION LOAD).
Postgres reports false — prepare returns NoOp there.
subscribe_lease_history: boolsubscribe_lease_history.
subscribe_completion: boolsubscribe_completion. On Valkey this is pubsub-backed
(non-durable cursor, at-most-once over the live subscription
window); Postgres is durable via outbox + cursor. Both report
true; see the trait method rustdoc for the non-durable-cursor
caveat and docs/POSTGRES_PARITY_MATRIX.md for the per-backend
semantic.
subscribe_signal_delivery: boolsubscribe_signal_delivery.
subscribe_instance_tags. Deferred per #311 (cairn’s instance_tag_backfill
pattern is served by list_executions + ScannerFilter::with_instance_tag(..));
reported false on both backends today.
stream_durable_summary: boolread_summary + durable-summary frames.
stream_best_effort_live: booltail_stream (best-effort live tail).