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
impl ExecutableEngineRegistrationConfig
Sourcepub fn new(
metadata: EngineRegistrationMetadata,
context_identity: ExecutionContextIdentity,
ingress: InputIngressContract,
) -> Self
pub fn new( metadata: EngineRegistrationMetadata, context_identity: ExecutionContextIdentity, ingress: InputIngressContract, ) -> Self
Build the immutable registration of one executable engine kind.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for ExecutableEngineRegistrationConfig
impl !UnwindSafe for ExecutableEngineRegistrationConfig
impl Freeze for ExecutableEngineRegistrationConfig
impl Send for ExecutableEngineRegistrationConfig
impl Sync for ExecutableEngineRegistrationConfig
impl Unpin for ExecutableEngineRegistrationConfig
impl UnsafeUnpin for ExecutableEngineRegistrationConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more