pub struct ActionProposal {
pub id: String,
pub source: String,
pub actions: Vec<Action>,
pub timestamp: DateTime<Utc>,
pub context: HashMap<String, Value>,
}Expand description
A batch of actions proposed by a model for runtime validation and execution.
Fields§
§id: String§source: String§actions: Vec<Action>§timestamp: DateTime<Utc>§context: HashMap<String, Value>Implementations§
Source§impl ActionProposal
impl ActionProposal
Sourcepub fn rollback_contract(&self) -> Reversibility
pub fn rollback_contract(&self) -> Reversibility
The rollback contract of the batch as a whole: the least reversible
contract any of its actions carries, via the severity ordering on
Reversibility. A plan is only as recoverable as its least
recoverable step — one irreversible action in an otherwise reversible
batch makes the batch irreversible, because partial execution is a real
outcome (it is exactly the failure mode StaticVerificationGate exists
to prevent on multi-action proposals).
An empty proposal is Reversibility::Reversible, not the
Irreversible default: the default answers “the author did not say”,
which warrants assuming the worst, whereas an empty batch has no
effects at all and there is nothing to be pessimistic about.
Trait Implementations§
Source§impl Clone for ActionProposal
impl Clone for ActionProposal
Source§fn clone(&self) -> ActionProposal
fn clone(&self) -> ActionProposal
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 ActionProposal
impl Debug for ActionProposal
Source§impl<'de> Deserialize<'de> for ActionProposal
impl<'de> Deserialize<'de> for ActionProposal
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ActionProposal, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ActionProposal, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for ActionProposal
impl PartialEq for ActionProposal
Source§impl Serialize for ActionProposal
impl Serialize for ActionProposal
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for ActionProposal
Auto Trait Implementations§
impl Freeze for ActionProposal
impl RefUnwindSafe for ActionProposal
impl Send for ActionProposal
impl Sync for ActionProposal
impl Unpin for ActionProposal
impl UnsafeUnpin for ActionProposal
impl UnwindSafe for ActionProposal
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
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>,
impl<T> ErasedDestructor for Twhere
T: 'static,
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