pub enum WorkspaceEditWarning {
RuleAlreadyPresent {
section: &'static str,
pattern: String,
},
RuleNotFoundNoop {
section: &'static str,
pattern: String,
},
GrantAlreadyPresent {
from: String,
to: String,
},
GrantNotFound {
from: String,
to: String,
},
CrossLinkTargetUnregistered {
to: String,
},
CrossLinkSelfGrantNoop {
mem: String,
},
}Expand description
Idempotency notices emitted by the writer when a call lands on a state the caller intended (re-grant of an existing grant, re-revoke of an absent grant, etc.). Surfacing these as warnings rather than errors lets agents and scripts retry without branching on prior state.
Variants§
RuleAlreadyPresent
add_create_rule / add_delete_rule called with a pattern
that already has a matching entry. File unchanged.
RuleNotFoundNoop
remove_create_rule / remove_delete_rule called with a
pattern that has no matching entry. File unchanged.
GrantAlreadyPresent
grant_cross_link called with a (from, to) pair already
permitted (target already in the allowlist, or * already
set). File unchanged.
GrantNotFound
revoke_cross_link called with a (from, to) pair that
isn’t currently permitted. File unchanged.
CrossLinkTargetUnregistered
grant_cross_link named a to target that isn’t a registered
mem (and isn’t the * wildcard). The grant still persists —
the forward-reference workflow (grant before the target mem
exists) is legitimate — but a likely typo is surfaced.
CrossLinkSelfGrantNoop
grant_cross_link named to == from — a self-grant. Intra-mem
links never traverse the cross-link gate, so the grant is a
no-op. It still persists; the meaninglessness is surfaced.
Implementations§
Trait Implementations§
Source§impl Clone for WorkspaceEditWarning
impl Clone for WorkspaceEditWarning
Source§fn clone(&self) -> WorkspaceEditWarning
fn clone(&self) -> WorkspaceEditWarning
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 WorkspaceEditWarning
impl Debug for WorkspaceEditWarning
Auto Trait Implementations§
impl Freeze for WorkspaceEditWarning
impl RefUnwindSafe for WorkspaceEditWarning
impl Send for WorkspaceEditWarning
impl Sync for WorkspaceEditWarning
impl Unpin for WorkspaceEditWarning
impl UnsafeUnpin for WorkspaceEditWarning
impl UnwindSafe for WorkspaceEditWarning
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,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<T> Fruit for T
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 more