pub struct Addr<T: Actor>(/* private fields */);Expand description
Address to send an actor a message.
Implementations§
Source§impl<T: Actor> Addr<T>
impl<T: Actor> Addr<T>
pub fn as_chan(&self) -> &Chan<T::Msg>
Sourcepub fn chan(&self) -> Chan<T::Msg>
pub fn chan(&self) -> Chan<T::Msg>
Examples found in repository?
examples/request_response.rs (line 33)
27 fn handle(&mut self, msg: MyActorMsg, ctx: &Context<Self>) {
28 match msg {
29 MyActorMsg::Add(a, b) => {
30 self.adder.send(AdderMsg::Add {
31 a,
32 b,
33 respond: ctx.myself().chan(),
34 });
35 }
36
37 MyActorMsg::AddedResult(result) => {
38 println!("Result: {}", result);
39 }
40 }
41 }
42}
43
44struct Adder;
45
46impl Actor for Adder {
47 type Msg = AdderMsg;
48}
49
50impl ActorBehavior for Adder {
51 fn handle(&mut self, msg: AdderMsg, _: &Context<Self>) {
52 match msg {
53 AdderMsg::Add { a, b, respond } => {
54 respond.send(MyActorMsg::AddedResult(a + b));
55 }
56 }
57 }
58}
59
60impl ActorHooks for Adder {}
61
62fn run() {
63 let adder = Adder.start().chan();
64 let myactor = MyActor { adder }.start();
65
66 myactor.send(MyActorMsg::Add(1, 2));
67 myactor.send(MyActorMsg::Add(1, 5));
68}pub fn into_chan(self) -> Chan<T::Msg>
Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for Addr<T>
impl<T> !RefUnwindSafe for Addr<T>
impl<T> Send for Addr<T>
impl<T> Sync for Addr<T>
impl<T> Unpin for Addr<T>
impl<T> !UnwindSafe for Addr<T>
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