Skip to main content

ExecutableEngineRegistrationConfig

Struct ExecutableEngineRegistrationConfig 

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

Typed configuration for assembling an executable engine registration.

A registration describes one engine kind: its provider metadata, the context identity of the engine type, and its ingress contract. It holds no engine instance; engines are passed to crate::Runtime::run per call and must report a matching crate::EngineTarget.

§Examples

use std::sync::Arc;

use tenferro_runtime::{
    CoreCapabilityBundle, EngineId, EngineRegistrationMetadata,
    ExecutableEngineRegistrationConfig, ExecutionContextIdentity, HardwareClassId,
    InputIngressContract, InputPlacementContract, InputSignatureContract,
    ProviderDeviceIdentity, ProviderId, ResidentOutputContract, RuntimeInputContract,
    StorageClass,
};

struct ExampleEngine;

let engine_id = EngineId::new("example.engine.v1").unwrap();
let provider = ProviderDeviceIdentity::new(
    ProviderId::new("example.provider").unwrap(),
    "device:0",
)
.unwrap();
let hardware = HardwareClassId::new("example.hardware.v1").unwrap();
let storage = StorageClass::new("example.storage.v1").unwrap();
let metadata = EngineRegistrationMetadata::new(
    engine_id,
    provider,
    hardware,
    Arc::from([storage.clone()]),
    storage,
    CoreCapabilityBundle::default(),
);
let ingress = InputIngressContract::new(
    InputPlacementContract::new(|_, _| true),
    InputSignatureContract::new(|_, _, _, _| true),
    RuntimeInputContract::new(|_, _| true),
    ResidentOutputContract::new(|_, _| true),
);
let _config = ExecutableEngineRegistrationConfig::new(
    metadata,
    ExecutionContextIdentity::of::<ExampleEngine>(),
    ingress,
);

Implementations§

Source§

impl ExecutableEngineRegistrationConfig

Source

pub fn new( metadata: EngineRegistrationMetadata, context_identity: ExecutionContextIdentity, ingress: InputIngressContract, ) -> Self

Build the immutable registration of one executable engine kind.

Trait Implementations§

Source§

impl Debug for ExecutableEngineRegistrationConfig

Source§

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

Formats the value using the given formatter. 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> 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, 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.