diff --git a/Cargo.lock b/Cargo.lock index c1baa4e..ec214da 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -285,7 +285,7 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serac" -version = "0.4.3" +version = "0.4.4" dependencies = [ "cortex-m", "cortex-m-rt", diff --git a/serac/Cargo.toml b/serac/Cargo.toml index 6439d7c..ee56bd9 100644 --- a/serac/Cargo.toml +++ b/serac/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "serac" -version = "0.4.3" +version = "0.4.4" edition = "2024" description = "A static, modular, and light-weight serialization framework." license = "CC-BY-NC-SA-4.0" diff --git a/serac/src/encoding/vanilla.rs b/serac/src/encoding/vanilla.rs index 27bf571..5e15574 100644 --- a/serac/src/encoding/vanilla.rs +++ b/serac/src/encoding/vanilla.rs @@ -267,6 +267,35 @@ unsafe impl Size for Option { const SIZE: usize = 1 + T::SIZE; } +// unit impl (no-op) + +impl SerializeIter for () { + fn serialize_iter<'a>( + &self, + _dst: impl IntoIterator::Word>, + ) -> Result + where + ::Word: 'a, + { + Ok(0) + } + + fn deserialize_iter<'a>( + _src: impl IntoIterator::Word>, + ) -> Result + where + ::Word: 'a, + { + Ok(()) + } +} + +unsafe impl Size for () { + const SIZE: usize = 0; +} + +unsafe impl SerializeBuf<0> for () {} + // PhantomData impl (no-op) impl SerializeIter for PhantomData {