Skip to main content

AgentAccess

Enum AgentAccess 

Source
pub enum AgentAccess {
    Exclusive,
    Isolated,
    SharedWorld,
}
Expand description

An agent’s data-access footprint during Agent::execute, used by the scheduler’s parallel executor to decide which agents may run concurrently.

The default (Exclusive) is the safe fallback: the agent may touch the ECS World mutably (or a shared mutable resource), so it must run serially. Only an agent that provably confines itself to reading the LaneBus and writing its own OutputDeck should declare Isolated.

Variants§

§

Exclusive

Needs exclusive &mut World (or mutates a shared resource); runs serially. The safe default.

§

Isolated

Touches no World and writes only its own OutputDeck — no shared mutable engine resources. Eligible for concurrent execution: the scheduler runs it with WorldAccess::None and a private deck shard, folded back into the shared deck after the concurrent wave. Any number may run in the same wave.

§

SharedWorld

Reads the World immutably (never mutates it) and may write shared engine resources. The scheduler runs it with a shared WorldAccess::Shared reference so many world-readers execute concurrently. Because it may write shared resources whose ordering matters, at most one SharedWorld agent runs per wave (alongside any number of Isolated agents).

Trait Implementations§

Source§

impl Clone for AgentAccess

Source§

fn clone(&self) -> AgentAccess

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for AgentAccess

Source§

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

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

impl Default for AgentAccess

Source§

fn default() -> AgentAccess

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

impl PartialEq for AgentAccess

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 Copy for AgentAccess

Source§

impl Eq for AgentAccess

Source§

impl StructuralPartialEq for AgentAccess

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> AppLifecycle for T
where T: ?Sized,

Source§

fn on_start(&mut self, ctx: &mut dyn AppContext)

Called once after the backend is up but before the first update. Apps install their theme / fonts here.
Source§

fn on_exit(&mut self)

Called once when the window is closing. Persist state here.
Source§

impl<T> AsAny for T
where T: Any,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Returns a reference to the inner value as &dyn Any.
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
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> 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, 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.