summaryrefslogtreecommitdiffhomepage
path: root/serialize/packbits-read.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2024-01-18 17:50:45 +0100
committerStanislaw Halik <sthalik@misaki.pl>2024-01-18 17:50:45 +0100
commit68351c6de75ee4ca835c57b223335c6df4f6a9d0 (patch)
tree1f51813b7e4bd9fc04e7143dcf532540f55a7b9c /serialize/packbits-read.cpp
parentdba1218fe0ed78d5b264538f2f4553900e9fd1eb (diff)
a
Diffstat (limited to 'serialize/packbits-read.cpp')
-rw-r--r--serialize/packbits-read.cpp38
1 files changed, 20 insertions, 18 deletions
diff --git a/serialize/packbits-read.cpp b/serialize/packbits-read.cpp
index cc3fc3bd..d71d06ac 100644
--- a/serialize/packbits-read.cpp
+++ b/serialize/packbits-read.cpp
@@ -21,7 +21,7 @@ static_assert(!input<uint32_t, 3>{65535}.check_zero());
static_assert(input<uint32_t, 30>{65535}.advance<16>() == 0);
static_assert(input<uint32_t, 30>::next<16>{ input<uint32_t, 30>{65535}.advance<16>() }.check_zero());
-static_assert(input<uint32_t, 30>::next<16>{}.Capacity == 14);
+static_assert(input<uint32_t, 30>::next<16>{}.Left == 14);
constexpr bool test1()
{
@@ -76,39 +76,41 @@ constexpr bool test3()
}
static_assert(test3());
-static_assert(std::is_same_v< make_tuple_type<uint8_t, 3>, std::tuple<uint8_t, uint8_t, uint8_t> >);
+template<size_t N> using f32 = input_field<uint32_t, N>;
+template<size_t N> using f8 = input_field<uint8_t, N>;
constexpr bool test4()
{
- using Tuple_u32 = make_tuple_type<uint32_t, 3>;
- static_assert(std::is_same_v<Tuple_u32, std::tuple<uint32_t, uint32_t, uint32_t>>);
- using Tuple_u8 = make_tuple_type<uint8_t, 3>;
+
{
- Tuple_u32 tuple{};
static_assert(lowbits<uint32_t, 17> == 0x1ffffU);
- read_(tuple, input<uint32_t, 32>{(uint32_t)-1}, std::make_index_sequence<3>{}, make_pack<uint32_t, 17, 14, 1>{});
- auto [a, b, c] = tuple;
+ f32<17> a;
+ f32<14> b;
+ f32< 1> c;
+ //auto tuple = std::tuple<f32<17>&, f32<14>&, f32<1>&>{a, b, c};
+ auto tuple = std::tie(a, b, c);
+ read_(tuple, input<uint32_t, 32>{(uint32_t)-1}, std::make_index_sequence<3>{});
fm_assert(a == lowbits<uint32_t, 17>);
fm_assert(b == lowbits<uint32_t, 14>);
fm_assert(c & 1);
}
{
- Tuple_u8 tuple{};
- read_(tuple, input<uint8_t, 8>{0b101011}, std::make_index_sequence<3>{}, make_pack<uint8_t, 1, 3, 2>{});
- auto [a, b, c] = tuple;
+ f8<1> a;
+ f8<3> b;
+ f8<2> c;
+ read_(std::tie(a, b, c), input<uint8_t, 8>{0b101011}, std::make_index_sequence<3>{});
fm_assert(a == 0b1);
fm_assert(b == 0b101);
fm_assert(c == 0b10);
}
{
- std::tuple<> empty_tuple;
- read_(empty_tuple, input<uint8_t, 8>{0}, std::index_sequence<>{}, make_pack<uint8_t>{});
- Tuple_u8 tuple{}; (void)tuple;
- //read_(empty_tuple, input<uint8_t, 8>{1}, std::index_sequence<>{}, make_tuple<uint8_t>{});
- //read_(tuple, input<uint8_t, 5>{0b11111}, std::make_index_sequence<3>{}, make_tuple<uint8_t, 2, 2, 2>{});
+ read_(std::tuple<>{}, input<uint8_t, 8>{0}, std::index_sequence<>{});
+ [[maybe_unused]] f32<2> a, b, c;
+ //read_(std::tuple<>{}, input<uint8_t, 8>{1}, std::index_sequence<>{});
+ //read_(std::tie(a, b, c), input<uint8_t, 5>{0b11111}, std::make_index_sequence<3>{});
//(void)input<uint8_t, 9>{};
- //read_(empty_tuple, input<uint8_t, 8>{}, std::index_sequence<0>{}, make_tuple<uint8_t, 1>{});
- //read_(empty_tuple, input<uint8_t, 8>{1}, std::index_sequence<>{}, make_tuple<uint8_t, 1>{});
+ //read_(std::tie(a), input<uint8_t, 8>{3}, std::index_sequence<0>{}); fm_assert(a == 3);
+ //f8<1> d; read_(std::tie(d), input<uint8_t, 8>{1}, std::index_sequence<>{});
}
return true;