pub struct WorkerBuilder { /* private fields */ }Expand description
Builder pattern for constructing and spawning a worker runtime.
A WorkerBuilder allows you to register multiple SharedObjects
under a given name, and then spawn a worker that connects to an RPC
broker and handles incoming requests.
§Example
ⓘ
struct Calculator;
#[async_trait]
impl SharedObject for Calculator {
async fn call(&self, method: &str, args: &Value) -> Value {
match method {
"add" => {
let a = args["a"].as_i64().unwrap();
let b = args["b"].as_i64().unwrap();
Value::from(a + b)
}
_ => Value::Null,
}
}
}
WorkerBuilder::new()
.add("Calculator", Calculator)
.spawn()
.await
.unwrap();Implementations§
Source§impl WorkerBuilder
impl WorkerBuilder
Sourcepub fn add<T>(self, name: &str, obj: T) -> Selfwhere
T: SharedObject + 'static,
pub fn add<T>(self, name: &str, obj: T) -> Selfwhere
T: SharedObject + 'static,
Add a named object to the worker.
§Arguments
name- The name under which this object will be registered.obj- The object implementingSharedObject.
§Returns
Updated WorkerBuilder so calls can be chained.
pub fn with_graceful_shutdown(self) -> (Self, Sender<bool>)
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for WorkerBuilder
impl !UnwindSafe for WorkerBuilder
impl Freeze for WorkerBuilder
impl Send for WorkerBuilder
impl Sync for WorkerBuilder
impl Unpin for WorkerBuilder
impl UnsafeUnpin for WorkerBuilder
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