djin_protocol/types/
uuid.rs

1use crate::{hint, Parcel, Error, Settings};
2use std::io::prelude::*;
3
4use uuid::Uuid;
5
6impl Parcel for Uuid
7{
8    const TYPE_NAME: &'static str = "Uuid";
9
10    fn read_field(read: &mut dyn Read,
11                  settings: &Settings,
12                  _: &mut hint::Hints)
13        -> Result<Self, Error> {
14        let bytes: [u8; 16] = Parcel::read(read, settings)?;
15
16        Ok(Uuid::from_bytes(bytes))
17    }
18
19    fn write_field(&self,
20                   write: &mut dyn Write,
21                   _: &Settings,
22                   _: &mut hint::Hints) -> Result<(), Error> {
23        write.write(self.as_bytes())?;
24        Ok(())
25    }
26}
27