pub enum Action<M: Matcher> {
Input(InputAction<M>),
Output(OutputAction<M>),
}
Expand description
There are two action types OutputAction
and InputAction
differ.
Both actions drive the internal state machine of an Agent
forward by calling next_state()
.
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 Step
s
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<M>)
Output(OutputAction<M>)
Implementations§
Trait Implementations§
source§impl<'de, M> Deserialize<'de> for Action<M>where
M: Matcher,
impl<'de, M> Deserialize<'de> for Action<M>where
M: Matcher,
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
Auto Trait Implementations§
impl<M> !RefUnwindSafe for Action<M>
impl<M> Send for Action<M>where
M: Send,
impl<M> Sync for Action<M>where
M: Sync,
impl<M> Unpin for Action<M>where
M: Unpin,
impl<M> !UnwindSafe for Action<M>
Blanket Implementations§
§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.