Skip to main content

EffectRow

Struct EffectRow 

Source
pub struct EffectRow {
    pub reads: Vec<Resource>,
    pub writes: Vec<Resource>,
    pub invokes: Vec<Capability>,
    pub spawns: bool,
    pub destructive: bool,
    pub sandbox: Sandbox,
    pub cost: CostEstimate,
}
Expand description

The effect row of a tool — what it does to the world.

Inspired by Koka’s effect row system, this is checked at compile time via Rust trait bounds and at runtime by the Dharma governance layer.

Fields§

§reads: Vec<Resource>

Resources this tool reads from

§writes: Vec<Resource>

Resources this tool writes to

§invokes: Vec<Capability>

Capabilities this tool invokes

§spawns: bool

Whether this tool spawns external processes

§destructive: bool

Whether this tool is destructive (deletes/overwrites data). Destructive tools require explicit confirmation via confirm: true in args.

§sandbox: Sandbox

Kernel-sandbox eligibility (Landlock A→B seam, declarative in v0).

§cost: CostEstimate

Estimated resource cost

Implementations§

Source§

impl EffectRow

Source

pub fn pure() -> Self

Create an empty effect row (pure function)

Source

pub fn read_only(resources: Vec<Resource>) -> Self

Create a read-only effect row

Source

pub fn is_available_in(&self, brain_wave: BrainWave) -> bool

Check if this effect row is compatible with a brain-wave state.

In Alpha/Theta/Delta modes, expensive or write-heavy tools are filtered out to conserve resources.

Source

pub fn conflicts_with(&self, other: &Self) -> bool

Check if this effect row conflicts with another (for parallel execution)

Trait Implementations§

Source§

impl Clone for EffectRow

Source§

fn clone(&self) -> EffectRow

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for EffectRow

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for EffectRow

Source§

fn default() -> EffectRow

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for EffectRow

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for EffectRow

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Serialize for EffectRow

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more