pub enum ToolSideEffect {
ReadOnly,
Mutating,
External,
}Expand description
Classification of a tool’s observable side-effects on state outside the agent process. Used by orphan detection and safe-replay (g154) to decide how aggressively to retry or skip an unfinished tool call.
Distinct from crate::kernel::SideEffect, which tracks background-job
scheduling; the two live in different modules and never collide.
Variants§
ReadOnly
No mutation of any state outside the agent process. Safe to
replay at any time. Examples: read_file, search_files,
recall, checkpoint_list.
Mutating
Modifies local state (filesystem, scratchpad) in an idempotent-
friendly way. Examples: write_file, apply_patch, remember.
External
Reaches out to the external world or triggers opaque side-effects.
Cannot determine safe re-execution from local state alone.
Examples: run_shell, sub_agent, schedule_wakeup.
Default for any tool that does not override side_effect_class.
Trait Implementations§
Source§impl Clone for ToolSideEffect
impl Clone for ToolSideEffect
Source§fn clone(&self) -> ToolSideEffect
fn clone(&self) -> ToolSideEffect
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ToolSideEffect
Source§impl Debug for ToolSideEffect
impl Debug for ToolSideEffect
Source§impl<'de> Deserialize<'de> for ToolSideEffect
impl<'de> Deserialize<'de> for ToolSideEffect
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>,
impl Eq for ToolSideEffect
Source§impl PartialEq for ToolSideEffect
impl PartialEq for ToolSideEffect
Source§fn eq(&self, other: &ToolSideEffect) -> bool
fn eq(&self, other: &ToolSideEffect) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for ToolSideEffect
impl Serialize for ToolSideEffect
impl StructuralPartialEq for ToolSideEffect
Auto Trait Implementations§
impl Freeze for ToolSideEffect
impl RefUnwindSafe for ToolSideEffect
impl Send for ToolSideEffect
impl Sync for ToolSideEffect
impl Unpin for ToolSideEffect
impl UnsafeUnpin for ToolSideEffect
impl UnwindSafe for ToolSideEffect
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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