pub enum Action<PT: ProtocolTypes> {
Input(InputAction<PT>),
Output(OutputAction<PT>),
}Expand description
There are two action types OutputAction and InputAction.
Both actions drive the internal state machine of an Agent forward by calling progress().
The OutputAction first forwards the state machine and then extracts knowledge from the
TLS messages produced by the underlying stream by calling take_message_from_outbound(...).
The InputAction evaluates the recipe term and injects the newly produced message
into the inbound channel of the Agent referenced through the corresponding Steps
by calling add_to_inbound(...) and then drives the state machine forward.
Therefore, the difference is that one step increases the knowledge of the attacker,
whereas the other action uses the available knowledge.
Variants§
Input(InputAction<PT>)
Output(OutputAction<PT>)
Trait Implementations§
source§impl<'de, PT> Deserialize<'de> for Action<PT>where
PT: ProtocolTypes,
impl<'de, PT> Deserialize<'de> for Action<PT>where
PT: ProtocolTypes,
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
source§impl<PT: ProtocolTypes> Display for Action<PT>
impl<PT: ProtocolTypes> Display for Action<PT>
Auto Trait Implementations§
impl<PT> Freeze for Action<PT>
impl<PT> !RefUnwindSafe for Action<PT>
impl<PT> Send for Action<PT>
impl<PT> Sync for Action<PT>
impl<PT> Unpin for Action<PT>
impl<PT> !UnwindSafe for Action<PT>
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<T> CloneAny for T
impl<T> CloneAny for T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit)§impl<Tail, T> Prepend<T> for Tail
impl<Tail, T> Prepend<T> for Tail
§type PreprendResult = Tail
type PreprendResult = Tail
The Resulting [
TupleList], of an [Prepend::prepend()] call,
including the prepended entry.