atomr_core/actor/
provider.rs1use super::address::Address;
5use super::path::ActorPath;
6
7pub trait ActorRefProvider: Send + Sync {
10 fn root_path(&self) -> ActorPath;
11 fn address(&self) -> &Address;
12}
13
14pub struct LocalActorRefProvider {
15 pub address: Address,
16}
17
18impl LocalActorRefProvider {
19 pub fn new(address: Address) -> Self {
20 Self { address }
21 }
22}
23
24impl ActorRefProvider for LocalActorRefProvider {
25 fn root_path(&self) -> ActorPath {
26 ActorPath::root(self.address.clone())
27 }
28
29 fn address(&self) -> &Address {
30 &self.address
31 }
32}