Enum TriggerEvent

Source
pub enum TriggerEvent {
    NormalRecv,
    PaddingRecv,
    TunnelRecv,
    NormalSent,
    PaddingSent {
        machine: MachineId,
    },
    TunnelSent,
    BlockingBegin {
        machine: MachineId,
    },
    BlockingEnd,
    TimerBegin {
        machine: MachineId,
    },
    TimerEnd {
        machine: MachineId,
    },
}
Expand description

Represents an event to be triggered in the framework.

Variants§

§

NormalRecv

Received non-padding packet.

This event should be triggered once for each incoming non-padding packet, after TunnelRecv, as soon as we have identified the packet as non-padding.

§

PaddingRecv

Received padding packet.

This event should be triggered once for each incoming padding packet, after TunnelRecv, as soon as we have identified the packet as padding.

§

TunnelRecv

Received a complete packet in the tunnel.

This event should be triggered once for each incoming packet of any type, as soon as possible after the packet is received from the network, before the packet is queued, processed, or decrypted.

(No event should be generated for a partially read packet.)

§

NormalSent

Sent non-padding packet.

This event should be triggered once for each outgoing non-padding packet, as soon as we have decided put it on any internal queue.

§

PaddingSent

Sent padding packet.

This event should be triggered once for each outgoing padding packet, as soon as we have decided put it on any internal queue.

Fields

§machine: MachineId
§

TunnelSent

Sent packet in the tunnel.

This event should be triggered once for each outgoing packet of any type, after that packet’s NormalSent or PaddingSent event, as close as possible to the time when it is actually written to the network.

§

BlockingBegin

Blocking of outgoing traffic started by the action from a machine.

This event should be triggered whenever the action timer for a crate::action::TriggerAction::BlockOutgoing action expires, whether the blocking timer is adjusted or not.

Fields

§machine: MachineId
§

BlockingEnd

Blocking of outgoing traffic has stopped.

This event should be triggered when the framework-scoped blocking timer expires.

§

TimerBegin

A machine’s internal timer started, or was changed.

This event should be triggered any time a new internal timer is started, or whenever the expiration time of an machine’s internal timer changes.

Fields

§machine: MachineId
§

TimerEnd

A machine’s internal timer expired.

(This event should not be sent in response to a timer being cancelled.)

Fields

§machine: MachineId

Implementations§

Source§

impl TriggerEvent

Source

pub fn is_event(&self, e: Event) -> bool

Checks if the TriggerEvent is a particular Event.

Trait Implementations§

Source§

impl Clone for TriggerEvent

Source§

fn clone(&self) -> TriggerEvent

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TriggerEvent

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for TriggerEvent

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for TriggerEvent

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for TriggerEvent

Source§

fn eq(&self, other: &TriggerEvent) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for TriggerEvent

Source§

impl StructuralPartialEq for TriggerEvent

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V