From 2a0b21983e3c724d89ee348f37eff57daf5726bd Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 10 Sep 2025 17:34:00 +0200 Subject: [PATCH] add some missing defmt impls --- justfile | 2 +- src/ecss/mod.rs | 4 ++++ src/ecss/scheduling.rs | 3 +++ src/ecss/verification.rs | 1 + src/util.rs | 1 + 5 files changed, 10 insertions(+), 1 deletion(-) diff --git a/justfile b/justfile index 77f1b55..f07324d 100644 --- a/justfile +++ b/justfile @@ -18,4 +18,4 @@ build: docs: export RUSTDOCFLAGS="--cfg docsrs --generate-link-to-definition -Z unstable-options" - cargo +nightly doc --all-features + cargo +nightly doc --all-features --open diff --git a/src/ecss/mod.rs b/src/ecss/mod.rs index ef54f45..aec0433 100644 --- a/src/ecss/mod.rs +++ b/src/ecss/mod.rs @@ -29,6 +29,7 @@ pub type CrcType = u16; #[derive(Debug, Copy, Clone, Eq, PartialEq, IntoPrimitive, TryFromPrimitive)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "defmt", derive(defmt::Format))] #[repr(u8)] #[non_exhaustive] pub enum PusServiceId { @@ -103,6 +104,7 @@ impl TryFrom for PusVersion { /// ECSS Packet Type Codes (PTC)s. #[derive(Debug, Copy, Clone, Eq, PartialEq, IntoPrimitive, TryFromPrimitive)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "defmt", derive(defmt::Format))] #[repr(u8)] pub enum PacketTypeCodes { Boolean = 1, @@ -124,6 +126,7 @@ pub type Ptc = PacketTypeCodes; /// ECSS Packet Field Codes (PFC)s for the unsigned [Ptc]. #[derive(Debug, Copy, Clone, Eq, PartialEq, IntoPrimitive, TryFromPrimitive)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "defmt", derive(defmt::Format))] #[repr(u8)] pub enum PfcUnsigned { OneByte = 4, @@ -141,6 +144,7 @@ pub enum PfcUnsigned { /// ECSS Packet Field Codes (PFC)s for the real (floating point) [Ptc]. #[derive(Debug, Copy, Clone, Eq, PartialEq, IntoPrimitive, TryFromPrimitive)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "defmt", derive(defmt::Format))] #[repr(u8)] pub enum PfcReal { /// 4 octets simple precision format (IEEE) diff --git a/src/ecss/scheduling.rs b/src/ecss/scheduling.rs index 5d7b401..5533812 100644 --- a/src/ecss/scheduling.rs +++ b/src/ecss/scheduling.rs @@ -5,6 +5,7 @@ use serde::{Deserialize, Serialize}; #[derive(Debug, PartialEq, Eq, Copy, Clone, IntoPrimitive, TryFromPrimitive)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "defmt", derive(defmt::Format))] #[repr(u8)] pub enum Subservice { // Core subservices @@ -47,6 +48,7 @@ pub enum Subservice { /// This status applies to sub-schedules and groups as well as specified in ECSS-E-ST-70-41C 8.11.3 #[derive(Debug, PartialEq, Eq, Copy, Clone)] +#[cfg_attr(feature = "defmt", derive(defmt::Format))] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum SchedStatus { Disabled = 0, @@ -66,6 +68,7 @@ impl From for SchedStatus { /// Time window types as specified in ECSS-E-ST-70-41C 8.11.3 #[derive(Debug, PartialEq, Eq, Copy, Clone)] +#[cfg_attr(feature = "defmt", derive(defmt::Format))] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum TimeWindowType { SelectAll = 0, diff --git a/src/ecss/verification.rs b/src/ecss/verification.rs index cd89b46..53ca69c 100644 --- a/src/ecss/verification.rs +++ b/src/ecss/verification.rs @@ -5,6 +5,7 @@ use serde::{Deserialize, Serialize}; #[derive(Debug, Eq, PartialEq, Copy, Clone, IntoPrimitive, TryFromPrimitive)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "defmt", derive(defmt::Format))] #[repr(u8)] pub enum Subservice { TmAcceptanceSuccess = 1, diff --git a/src/util.rs b/src/util.rs index da80792..46ac63c 100644 --- a/src/util.rs +++ b/src/util.rs @@ -102,6 +102,7 @@ pub trait UnsignedEnumExt: UnsignedEnum + Debug + Copy + Clone + PartialEq + Eq #[derive(Debug, Copy, Clone, PartialEq, Eq)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "defmt", derive(defmt::Format))] pub enum UnsignedByteFieldError { /// Value is too large for specified width of byte field. ValueTooLargeForWidth {