Struct dfir_rs::util::simulation::Fleet

source ·
pub struct Fleet { /* private fields */ }
Expand description

A fleet is a collection of hosts in the simulation. It is responsible for running the simulation and processing network messages.

Implementations§

source§

impl Fleet

source

pub fn new() -> Self

Creates a new instance of Fleet.

source

pub fn add_host<F>(&mut self, name: String, transducer_builder: F) -> &Host
where F: FnOnce(&mut TransducerBuilderContext<'_>) -> Dfir<'static>,

Adds a new host to the fleet with the given name and transducer.

source

pub fn get_host(&self, name: &str) -> Option<&Host>

Get a host by name.

source

pub fn get_host_mut(&mut self, name: &str) -> Option<&mut Host>

Get a host by name.

source

pub async fn run_single_tick_all_hosts(&mut self) -> bool

Advance time on all hosts by a single tick. Returns true if any work was done by any of the hosts. After ticking once on all the hosts, the method also processes network messages.

The order in which the ticks are processed is not guaranteed.

source

pub async fn process_network(&mut self)

Process all network messages in the simulation. This method picks up all messages from all outboxes on all hosts and delivers them to the corresponding inboxes on the destination.

The order in which the messages are processed is not guaranteed.

source

pub async fn run_until_quiescent(&mut self)

Tick all hosts until all hosts are quiescent (i.e. no new work is done by any host). Ticking is done in “rounds”. At each round, all hosts are ticked once and then network messages are processed. The process continues until no work is done by any host in a round.

Trait Implementations§

source§

impl Default for Fleet

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl Freeze for Fleet

§

impl !RefUnwindSafe for Fleet

§

impl !Send for Fleet

§

impl !Sync for Fleet

§

impl Unpin for Fleet

§

impl !UnwindSafe for Fleet

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

source§

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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more