Module traits

Source
Expand description

Traits designating required simulation agent functionality

The traits are intended to be used in a hierarchical manner:

  • SimState collect all simulation agents, where fields may be different agent types. This trait then describes functions called during simulation execution
  • AgentSet is intended as a homogeneous collection of an agent type
  • Agent is an individual agent that may be member of an AgentSet

Implementers have the flexibility to only use part of this structure though, for instance an implementation of SimState could implement an individual agent.

Since it is a common use case to want to iterate over a agents of different types, the macro #[derive(SimState)] will automatically implement functions that iterate over field containing agents.

Traits§

Agent
Trait defining behaviour for a single agent
AgentSet
A homogenous collection of agents
RecordedAgent
Trait used to record the state of the agent over the course of the simulation
RecordedAgentSet
Take ownership of time-series data from a set of agents
SimState
Simulation agent state trait

Derive Macros§

SimState