Struct Runtime

Source
pub struct Runtime { /* private fields */ }
Expand description

The runtime wraps a multitude of inference models with batching support, and support for time-limited execution.

Implementations§

Source§

impl Runtime

Source

pub fn new() -> Self

Create a new empty runtime.

Source

pub fn add_inferer(&mut self, inferer: impl Inferer + 'static + Send) -> BrainId

Add a new inferer to this runtime. The new infererer will be at the end of the inference queue when using timed inference.

Source

pub fn push( &mut self, brain: BrainId, agent: AgentId, state: State<'_>, ) -> Result<(), CervoError>

Queue the state to brain for agent, to be included in the next inference batch.

Source

pub fn infer_single( &mut self, brain_id: BrainId, state: State<'_>, ) -> Result<Response<'_>, CervoError>

Run a single item through the specific brain. If there’s pending data for the brain, this’ll have some extra overhead for new allocations.

Source

pub fn run( &mut self, ) -> Result<HashMap<BrainId, HashMap<AgentId, Response<'_>>>, CervoError>

Executes all models with queued data.

Source

pub fn run_for( &mut self, duration: Duration, ) -> Result<HashMap<BrainId, HashMap<AgentId, Response<'_>>>, CervoError>

Executes all models with queued data. Will attempt to keep total time below the provided duration, but due to noise or lack of samples might miss the deadline. See the note in the root.

Source

pub fn output_shapes( &self, brain: BrainId, ) -> Result<&[(String, Vec<usize>)], CervoError>

Retrieve the output shapes for the provided brain.

Source

pub fn input_shapes( &self, brain: BrainId, ) -> Result<&[(String, Vec<usize>)], CervoError>

Retrieve the input shapes for the provided brain.

Source

pub fn clear(&mut self) -> Result<(), CervoError>

Clear all models and all related data. Will error (after clearing all data) if there was queued items that are now orphaned.

Source

pub fn remove_inferer(&mut self, brain: BrainId) -> Result<(), CervoError>

Clear a model and related data. Will error (after clearing all data) if there was queued items that are now orphaned.

Trait Implementations§

Source§

impl Default for Runtime

Source§

fn default() -> Self

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

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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

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

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

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

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
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> 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.
Source§

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

Source§

fn vzip(self) -> V