pub struct IngressDirective {
pub budget_cap: Option<u32>,
pub priority: Option<Priority>,
pub required_approver: Option<ExternalIdentity>,
}Expand description
Edge-authored policy for one turn (#68).
The edge’s own decision, never something the model or a tool can set.
Built by EdgeAdapter::ingress_directive; threaded through
crate::AgentDialer’s dialer entry points into the wire AgentStart.
Every field absent (the Default) is the common case and costs nothing
on the wire — Self::is_empty says so without inspecting each field.
Fields§
§budget_cap: Option<u32>Upper bound on the turn’s step budget. The control plane can only
LOWER the budget it would otherwise resolve, never raise it. None
means the edge expresses no cap.
priority: Option<Priority>Advisory scheduling hint; recorded in the eventlog, not scheduled (see
Priority). None means the edge expressed no preference.
required_approver: Option<ExternalIdentity>The identity that alone may APPROVE a gated call this turn (enforced
fail-closed in ApprovalService.Respond); Deny/Defer stay open to any
resolve-token holder. None means no approver restriction.
Implementations§
Trait Implementations§
Source§impl Clone for IngressDirective
impl Clone for IngressDirective
Source§fn clone(&self) -> IngressDirective
fn clone(&self) -> IngressDirective
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 IngressDirective
impl Debug for IngressDirective
Source§impl Default for IngressDirective
impl Default for IngressDirective
Source§fn default() -> IngressDirective
fn default() -> IngressDirective
Source§impl From<IngressDirective> for IngressDirective
Every field named explicitly — no ..Default::default() spread — so a
field added to WireIngressDirective without updating this impl fails to
compile instead of silently not riding the wire. IngressDirective is a
fail-closed policy envelope (#68): a dropped required_approver or
budget_cap here is a fail-open bug, not just data loss.
impl From<IngressDirective> for IngressDirective
Every field named explicitly — no ..Default::default() spread — so a
field added to WireIngressDirective without updating this impl fails to
compile instead of silently not riding the wire. IngressDirective is a
fail-closed policy envelope (#68): a dropped required_approver or
budget_cap here is a fail-open bug, not just data loss.
Source§fn from(directive: IngressDirective) -> Self
fn from(directive: IngressDirective) -> Self
Source§impl PartialEq for IngressDirective
impl PartialEq for IngressDirective
impl StructuralPartialEq for IngressDirective
Auto Trait Implementations§
impl Freeze for IngressDirective
impl RefUnwindSafe for IngressDirective
impl Send for IngressDirective
impl Sync for IngressDirective
impl Unpin for IngressDirective
impl UnsafeUnpin for IngressDirective
impl UnwindSafe for IngressDirective
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<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
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> ⓘ
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> ⓘ
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>
T in a tonic::Request