use std::io::{Read, Write};
use crate::io::reader::CubeReader;
use crate::io::writer::CubeWriter;
use crate::util::{IoResult, VioResult};
pub const LL_PING: u8 = 0x81;
pub struct Ping {
last_cycle: u64,
}
impl Ping {
pub fn write<W: Write>(&self, writer: &mut CubeWriter<W>) -> VioResult {
writer.write_uint8(LL_PING)?;
writer.write_uint64(self.last_cycle)?;
Result::Ok(())
}
pub fn read<R: Read>(reader: &mut CubeReader<R>) -> IoResult<Self> {
Result::Ok(Self {
last_cycle: reader.read_uint64()?,
})
}
}
pub const LL_PONG: u8 = 0x82;
pub struct Pong {}
impl Pong {
pub fn write<W: Write>(&self, writer: &mut CubeWriter<W>) -> VioResult {
writer.write_uint8(LL_PONG)?;
Result::Ok(())
}
pub fn read<R: Read>(_reader: &mut CubeReader<R>) -> IoResult<Self> { Result::Ok(Self {}) }
}