// @generated rust packets from foo.pdl use bytes::{Buf, BufMut, Bytes, BytesMut}; use std::cell::Cell; use std::convert::{TryFrom, TryInto}; use std::fmt; use std::sync::Arc; use thiserror::Error; type Result = std::result::Result; #[doc = r" Private prevents users from creating arbitrary scalar values"] #[doc = r" in situations where the value needs to be validated."] #[doc = r" Users can freely deref the value, but only the backend"] #[doc = r" may create it."] #[derive(Debug, Clone, Copy, Hash, PartialEq, Eq, PartialOrd, Ord)] pub struct Private(T); impl std::ops::Deref for Private { type Target = T; fn deref(&self) -> &Self::Target { &self.0 } } #[derive(Debug, Error)] pub enum Error { #[error("Packet parsing failed")] InvalidPacketError, #[error("{field} was {value:x}, which is not known")] ConstraintOutOfBounds { field: String, value: u64 }, #[error("Got {actual:x}, expected {expected:x}")] InvalidFixedValue { expected: u64, actual: u64 }, #[error("when parsing {obj} needed length of {wanted} but got {got}")] InvalidLengthError { obj: String, wanted: usize, got: usize }, #[error("array size ({array} bytes) is not a multiple of the element size ({element} bytes)")] InvalidArraySize { array: usize, element: usize }, #[error("Due to size restrictions a struct could not be parsed.")] ImpossibleStructError, #[error("when parsing field {obj}.{field}, {value} is not a valid {type_} value")] InvalidEnumValueError { obj: String, field: String, value: u64, type_: String }, #[error("expected child {expected}, got {actual}")] InvalidChildError { expected: &'static str, actual: String }, } pub trait Packet { fn to_bytes(self) -> Bytes; fn to_vec(self) -> Vec; }