xous/definitions/messages/
sender.rs

1use crate::PID;
2
3#[derive(Debug, PartialEq, Eq, Ord, PartialOrd, Copy, Clone, Default)]
4pub struct Sender {
5    data: usize,
6}
7
8impl Sender {
9    pub fn to_usize(&self) -> usize { self.data }
10
11    pub fn from_usize(data: usize) -> Self { Sender { data } }
12
13    pub fn pid(&self) -> Option<PID> {
14        let pid_u8 = ((self.data >> 24) & 0xff) as u8;
15        PID::new(pid_u8)
16    }
17}
18
19impl core::fmt::Display for Sender {
20    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
21        write!(f, "MessageSender.data: 0x{:08x}", self.data)
22    }
23}