#![allow(warnings)]
use super::prelude::*;
#[derive(Clone, Debug, Default)]
pub struct EnableRequest {
pub req_type: u8,
pub length: u16,
}
impl EnableRequest {}
impl AsByteSequence for EnableRequest {
#[inline]
fn as_bytes(&self, bytes: &mut [u8]) -> usize {
let mut index: usize = 0;
index += self.req_type.as_bytes(&mut bytes[index..]);
index += 1;
index += self.length.as_bytes(&mut bytes[index..]);
index
}
#[inline]
fn from_bytes(bytes: &[u8]) -> Option<(Self, usize)> {
let mut index: usize = 0;
log::trace!("Deserializing EnableRequest from byte buffer");
let (req_type, sz): (u8, usize) = <u8>::from_bytes(&bytes[index..])?;
index += sz;
index += 1;
let (length, sz): (u16, usize) = <u16>::from_bytes(&bytes[index..])?;
index += sz;
Some((
EnableRequest {
req_type: req_type,
length: length,
},
index,
))
}
#[inline]
fn size(&self) -> usize {
self.req_type.size() + 1 + self.length.size()
}
}
impl Request for EnableRequest {
const OPCODE: u8 = 0;
const EXTENSION: Option<&'static str> = Some("BIG-REQUESTS");
const REPLY_EXPECTS_FDS: bool = false;
type Reply = EnableReply;
}
#[derive(Clone, Debug, Default)]
pub struct EnableReply {
pub reply_type: u8,
pub sequence: u16,
pub length: u32,
pub maximum_request_length: Card32,
}
impl EnableReply {}
impl AsByteSequence for EnableReply {
#[inline]
fn as_bytes(&self, bytes: &mut [u8]) -> usize {
let mut index: usize = 0;
index += self.reply_type.as_bytes(&mut bytes[index..]);
index += 1;
index += self.sequence.as_bytes(&mut bytes[index..]);
index += self.length.as_bytes(&mut bytes[index..]);
index += self.maximum_request_length.as_bytes(&mut bytes[index..]);
index
}
#[inline]
fn from_bytes(bytes: &[u8]) -> Option<(Self, usize)> {
let mut index: usize = 0;
log::trace!("Deserializing EnableReply from byte buffer");
let (reply_type, sz): (u8, usize) = <u8>::from_bytes(&bytes[index..])?;
index += sz;
index += 1;
let (sequence, sz): (u16, usize) = <u16>::from_bytes(&bytes[index..])?;
index += sz;
let (length, sz): (u32, usize) = <u32>::from_bytes(&bytes[index..])?;
index += sz;
let (maximum_request_length, sz): (Card32, usize) = <Card32>::from_bytes(&bytes[index..])?;
index += sz;
Some((
EnableReply {
reply_type: reply_type,
sequence: sequence,
length: length,
maximum_request_length: maximum_request_length,
},
index,
))
}
#[inline]
fn size(&self) -> usize {
self.reply_type.size()
+ 1
+ self.sequence.size()
+ self.length.size()
+ self.maximum_request_length.size()
}
}