agner_actors/
actor_id.rs

1mod impl_fmt;
2
3#[cfg(feature = "serde")]
4mod serde;
5
6#[cfg(test)]
7mod tests;
8
9/// Identifier of an actor.
10#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
11pub struct ActorID(Inner);
12
13impl ActorID {
14    /// Create a new [`ActorID`] from the provided components
15    pub(crate) fn new(system: usize, actor: usize, seq: usize) -> Self {
16        Self(Inner { system, actor, seq })
17    }
18    /// Get `system` component
19    pub(crate) fn system(&self) -> usize {
20        self.0.system
21    }
22    /// Get `actor` component
23    pub(crate) fn actor(&self) -> usize {
24        self.0.actor
25    }
26    /// Get `seq` component
27    pub(crate) fn seq(&self) -> usize {
28        self.0.seq
29    }
30}
31
32#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
33struct Inner {
34    system: usize,
35    actor: usize,
36    seq: usize,
37}