diff --git a/src/lib.rs b/src/lib.rs index dba2f3f..1617f7b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2,6 +2,7 @@ pub mod asynchronous; pub mod pdo; +pub mod type_c; /// Port ID new type #[derive(Copy, Clone, Debug, PartialEq, Eq)] diff --git a/src/type_c.rs b/src/type_c.rs new file mode 100644 index 0000000..f8ba04b --- /dev/null +++ b/src/type_c.rs @@ -0,0 +1,23 @@ +/// Type-C current +#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)] +#[cfg_attr(feature = "defmt", derive(defmt::Format))] +pub enum Current { + /// Default USB current 900 mA + #[default] + UsbDefault, + /// 1.5A + Current1A5, + /// 3A0 + Current3A0, +} + +impl Current { + /// Returns the current in mA + pub fn to_ma(self) -> u16 { + match self { + Current::UsbDefault => 900, + Current::Current1A5 => 1500, + Current::Current3A0 => 3000, + } + } +}