pub enum Collaboration {
ParallelDisjoint,
DistinctAuthority,
}Expand description
Why collaboration is worth its cost here.
Variants§
ParallelDisjoint
Sub-tasks operate on disjoint inputs.
Checked, not taken on trust: overlapping inputs are false parallelism, where the coordination cost is paid and no parallelism is obtained.
DistinctAuthority
Sub-tasks need strictly different authority.
The best reason to split agents, and the one least often named: if a sub-task needs credentials the parent should not hold, delegating to a narrower agent buys least privilege rather than hypothetical speed.
Trait Implementations§
Source§impl Clone for Collaboration
impl Clone for Collaboration
impl Copy for Collaboration
Source§impl Debug for Collaboration
impl Debug for Collaboration
Source§impl<'de> Deserialize<'de> for Collaboration
impl<'de> Deserialize<'de> for Collaboration
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 Collaboration
Source§impl PartialEq for Collaboration
impl PartialEq for Collaboration
Source§impl Serialize for Collaboration
impl Serialize for Collaboration
impl StructuralPartialEq for Collaboration
Auto Trait Implementations§
impl Freeze for Collaboration
impl RefUnwindSafe for Collaboration
impl Send for Collaboration
impl Sync for Collaboration
impl Unpin for Collaboration
impl UnsafeUnpin for Collaboration
impl UnwindSafe for Collaboration
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<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 moreCreates a shared type from an unshared type.