Skip to main content

ActorFactory

Trait ActorFactory 

Source
pub trait ActorFactory: Send + Sync {
    // Required method
    fn build(&self, actor_json: &Value) -> Result<Arc<dyn ActorContext>, Error>;
}
Expand description

Build an ActorContext from opaque JSON at the Valence port boundary.

Typed product actor enums stay in host crates; this port only sees JSON. Wire with crate::ValenceBuilder::actor_factory.

§Examples

use std::sync::Arc;
use valence_core::{ActorFactory, JsonActorFactory};

let factory = JsonActorFactory;
let ctx = factory
    .build(&serde_json::json!({"kind": "user", "id": "u1"}))
    .expect("build");
assert_eq!(ctx.actor_json()["id"], "u1");
let _ = Arc::new(factory);

Required Methods§

Source

fn build(&self, actor_json: &Value) -> Result<Arc<dyn ActorContext>, Error>

Construct a context from host-supplied actor JSON.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§