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§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".