1use crate::encode::Encode;
2use serde::{Deserialize, Serialize};
3
4#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
6pub enum Request<'a> {
7 NetStart,
9 NetStop,
11 NetLocalAddr,
13 NetAdvertise,
15 NetRecv,
17 NetSend([u8; 6], &'a [u8]),
19 ReadInput,
21}
22
23impl<'a> Encode<'a> for Request<'a> {}
24
25#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
27pub enum Response<'a> {
28 Error(&'a str),
29 NetStarted,
30 NetStopped,
31 NetLocalAddr([u8; 6]),
32 NetAdvertised,
33 NetIncoming([u8; 6], &'a [u8]),
34 NetNoIncoming,
35 NetSent,
36 Input(Option<(i16, i16)>, u8),
37}
38
39impl<'a> Encode<'a> for Response<'a> {}