Trait total_space::MetaModel[][src]

pub trait MetaModel {
    type StateId;
    type MessageId;
    type InvalidId;
    type ConfigurationId;
    type Payload;
    type AgentTypeRc;
    type Message;
    type Reaction;
    type Action;
    type Emit;
    type Invalid;
    type Configuration;
    type ConfigurationHashEntry;
    type Validator;
    type Condition;

    const MAX_AGENTS: usize;
    const MAX_MESSAGES: usize;
}

Allow querying the model’s meta-parameters for public types.

Associated Types

type StateId[src]

The type of state identifiers.

type MessageId[src]

The type of message identifiers.

type InvalidId[src]

The type of invalid condition identifiers.

type ConfigurationId[src]

The type of configuration identifiers.

type Payload[src]

The type of message payloads.

type AgentTypeRc[src]

The type of boxed agent type.

type Message[src]

The type of in-flight messages.

type Reaction[src]

The type of a event handling by an agent.

type Action[src]

The type of an action from an agent.

type Emit[src]

The type of an emitted messages.

type Invalid[src]

The type of invalid conditions.

type Configuration[src]

The type of the included configurations.

type ConfigurationHashEntry[src]

The type of a hash table entry for the configurations (should be cache-friendly).

type Validator[src]

The type of a configuration validation function.

type Condition[src]

A condition on model configurations.

Loading content...

Associated Constants

const MAX_AGENTS: usize[src]

The maximal number of agents.

const MAX_MESSAGES: usize[src]

The maximal number of in-flight messages.

Loading content...

Implementors

impl<StateId: IndexLike, MessageId: IndexLike, InvalidId: IndexLike, ConfigurationId: IndexLike, Payload: DataLike, const MAX_AGENTS: usize, const MAX_MESSAGES: usize> MetaModel for Model<StateId, MessageId, InvalidId, ConfigurationId, Payload, MAX_AGENTS, MAX_MESSAGES>[src]

type StateId = StateId

type MessageId = MessageId

type InvalidId = InvalidId

type ConfigurationId = ConfigurationId

type Payload = Payload

type AgentTypeRc = Rc<dyn AgentType<StateId, Payload>>

type Message = Message<Payload>

type Reaction = Reaction<StateId, Payload>

type Action = Action<StateId, Payload>

type Emit = Emit<Payload>

type Invalid = Invalid<MessageId>

type Configuration = Configuration<StateId, MessageId, InvalidId, MAX_AGENTS, MAX_MESSAGES>

type ConfigurationHashEntry = (Configuration<StateId, MessageId, InvalidId, MAX_AGENTS, MAX_MESSAGES>, ConfigurationId)

type Validator = fn(_: &Self, _: &Configuration<StateId, MessageId, InvalidId, MAX_AGENTS, MAX_MESSAGES>) -> Option<&'static str>

type Condition = fn(_: &Self, _: &Configuration<StateId, MessageId, InvalidId, MAX_AGENTS, MAX_MESSAGES>) -> bool

Loading content...