summaryrefslogtreecommitdiffhomepage
path: root/serialize/packbits-write.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'serialize/packbits-write.cpp')
-rw-r--r--serialize/packbits-write.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/serialize/packbits-write.cpp b/serialize/packbits-write.cpp
index efdf1602..b549994e 100644
--- a/serialize/packbits-write.cpp
+++ b/serialize/packbits-write.cpp
@@ -4,10 +4,23 @@ namespace floormat::detail_Pack_output {
using u32 = uint32_t;
using u8 = uint8_t;
+template<size_t N> using f32 = output_field<u32, N>;
+template<size_t N> using f8 = output_field<u8, N>,
+
+static_assert(count_bits<u32, std::tuple< f32<2>, f32<3>, f32<5>> >::length == 10);
+static_assert(count_bits<u8, std::tuple<>>::length == 0);
+//static_assert(count_bits<u8, std::tuple<f8<9>>>::length == 0);
template u32 write_(output<u32, 32>, output_field<u32, 1>);
static_assert(output<u32, 32>::next<1>::Capacity == 31);
static_assert(output<u32, 32>::next<1>::next<2>::Capacity == 29);
+template<size_t N> using f32 = output_field<u32, N>;
+
+static_assert(write_(output<u32, 32>{0},
+ f32<2>{0b10},
+ f32<3>{0b011},
+ f32<3>{0b001}) == 0b000101110);
+
} // namespace floormat::detail_Pack_output