#[derive(Default, PartialEq, Serialize, Debug)] #[serde(rename_all = "lowercase", tag = "mode", content = "config")] pub enum PortMode { #[default] Inactive, Sio(SioConfig), } #[derive(Default, PartialEq, Serialize, Debug)] pub enum PortMode2 { #[default] Inactive, Sio(SioConfig), } #[derive(Default, PartialEq, Serialize, Deserialize, Debug)] #[serde(rename_all = "lowercase")] pub struct SioConfig { pub mode: SioMode, pub debounce_us: u32, } #[derive(Default, PartialEq, Serialize, Deserialize, Debug)] #[serde(rename_all = "lowercase")] pub enum SioMode { Npn, #[default] Pnp, }