1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
use crate :: { import::* };


/// Interface for uniquely identifying actors. Mainly useful for logging and debugging.
//
pub trait Identify
{
	/// Get a unique identifier for this actor, so you can verify
	/// if two addresss deliver to the same actor.
	//
	fn id( &self ) -> usize;

	/// A human readable name of the actor.
	//
	fn name( &self ) -> Option< Arc<str> >;
}



impl<T> Identify for Box<T> where T: Identify
{
	fn id( &self ) -> usize { (**self).id() }

	fn name( &self ) -> Option< Arc<str> > { (**self).name() }
}



impl<T> Identify for &T where T: Identify
{
	fn id( &self ) -> usize { (**self).id() }

	fn name( &self ) -> Option< Arc<str> > { (**self).name() }
}