tof_dataclasses/
caraspace.rs

1//! Register TofPacket with the caraspace system
2
3use caraspace::prelude::{
4  CRFrameObjectType,
5  CRSerializeable,
6  CRSerializationError,
7  Frameable,
8};
9
10use crate::packets::TofPacket;
11use crate::serialization::Serialization;
12
13impl Frameable for TofPacket {
14  const CRFRAMEOBJECT_TYPE : CRFrameObjectType = CRFrameObjectType::TofPacket;
15}
16
17impl CRSerializeable for TofPacket {
18
19  fn deserialize(stream : &Vec<u8>, pos : &mut usize)
20  -> Result<Self, CRSerializationError> {
21    match Self::from_bytestream(stream, pos) {
22      Err(_err) => {
23        // FIXME - that should get better. Maybe we want
24        // to unify CRSerializationError and SerializationError?
25        return Err(CRSerializationError::UnknownError);
26      }
27      Ok(obj) => {
28        return Ok(obj)
29      }
30    }
31  }
32  
33  fn serialize(&self) 
34    -> Vec<u8> {
35    self.to_bytestream()
36  }
37}
38