1#[cfg(feature = "serde")]
3use serde::Serialize;
4
5use crate::{Decode, Encode};
6
7#[derive(Debug, Default, Clone, Copy)]
8#[cfg_attr(feature = "serde", derive(Serialize))]
9#[repr(u8)]
10pub enum Wind {
12 #[default]
13 None = 0,
15 Weak = 1,
17 Strong = 2,
19}
20
21impl Decode for Wind {
22 fn decode(buf: &mut bytes::Bytes) -> Result<Self, crate::DecodeError> {
23 match u8::decode(buf)? {
24 0 => Ok(Wind::None),
25 1 => Ok(Self::Weak),
26 2 => Ok(Self::Strong),
27 other => Err(crate::DecodeError::NoVariantMatch {
28 found: other as u64,
29 }),
30 }
31 }
32}
33
34impl Encode for Wind {
35 fn encode(&self, buf: &mut bytes::BytesMut) -> Result<(), crate::EncodeError> {
36 (*self as u8).encode(buf)
37 }
38}