pub struct PlanPermissions {
pub builds: PlanPermLevel,
pub web: PlanPermLevel,
pub memory: PlanPermLevel,
pub tasks: PlanPermLevel,
}Expand description
Per-category permission profile applied while a plan is being drafted. The read-only floor stays the base; these levels decide how far each carve-out opens. The plan file itself is not a category — being able to author the plan IS plan mode.
Fields§
§builds: PlanPermLevelKnown-safe build/test commands (is_plan_safe_build_command).
web: PlanPermLevelweb_search / web_fetch (GET-shaped reads).
memory: PlanPermLevelDurable memory writes.
tasks: PlanPermLevelThe checklist writers (task_create / task_update). Only allow
unblocks them — auto/ask collapse to deny (they are ungated
tools with no approval path, and the checklist is seeded from the
approved plan anyway).
Implementations§
Source§impl PlanPermissions
impl PlanPermissions
Sourcepub fn preset_name(&self) -> Option<&'static str>
pub fn preset_name(&self) -> Option<&'static str>
The top-level picker presets; None when the current values match
none of them (the picker shows “custom”).
Trait Implementations§
Source§impl Clone for PlanPermissions
impl Clone for PlanPermissions
Source§fn clone(&self) -> PlanPermissions
fn clone(&self) -> PlanPermissions
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for PlanPermissions
Source§impl Debug for PlanPermissions
impl Debug for PlanPermissions
Source§impl Default for PlanPermissions
impl Default for PlanPermissions
Source§impl<'de> Deserialize<'de> for PlanPermissionswhere
PlanPermissions: Default,
impl<'de> Deserialize<'de> for PlanPermissionswhere
PlanPermissions: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for PlanPermissions
Source§impl PartialEq for PlanPermissions
impl PartialEq for PlanPermissions
Source§impl Serialize for PlanPermissions
impl Serialize for PlanPermissions
impl StructuralPartialEq for PlanPermissions
Auto Trait Implementations§
impl Freeze for PlanPermissions
impl RefUnwindSafe for PlanPermissions
impl Send for PlanPermissions
impl Sync for PlanPermissions
impl Unpin for PlanPermissions
impl UnsafeUnpin for PlanPermissions
impl UnwindSafe for PlanPermissions
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
Mutably borrows from an owned value. Read more
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<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>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> 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)
Convert
&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)
Convert
&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> DowncastSync for T
impl<T> DowncastSync for T
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
Compare self to
key and return true if they are equal.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>
Converts
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>
Converts
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