statime_wire/messages/
signalling.rs1use crate::{Error, common::PortIdentity};
2
3#[derive(Debug, Clone, PartialEq, Eq)]
5pub struct SignalingMessage {
6 pub target_port_identity: PortIdentity,
8}
9
10impl SignalingMessage {
11 pub(crate) fn content_size(&self) -> usize {
12 10
13 }
14
15 pub(crate) fn serialize_content(&self, buffer: &mut [u8]) -> Result<(), Error> {
16 if buffer.len() < 10 {
17 return Err(Error::BufferTooShort);
18 }
19
20 let (left, _) = buffer.split_at_mut(10);
21
22 self.target_port_identity.serialize(left)?;
23
24 Ok(())
25 }
26
27 pub(crate) fn deserialize_content(buffer: &[u8]) -> Result<Self, Error> {
28 let identity_bytes = buffer.get(0..10).ok_or(Error::BufferTooShort)?;
29 let target_port_identity = PortIdentity::deserialize(identity_bytes)?;
30
31 Ok(Self {
32 target_port_identity,
33 })
34 }
35}