|
6 | 6 | #include "Reader.hpp" |
7 | 7 | #include "Writer.hpp" |
8 | 8 |
|
9 | | -namespace rfl::parsing { |
10 | | - |
11 | | -/// CBOR requires us to explicitly set the number of fields in advance. |
12 | | -/// Because of that, we require all of the fields and then set them to nullptr, |
13 | | -/// if necessary. |
14 | | -template <class ProcessorsType, class... FieldTypes> |
15 | | - requires AreReaderAndWriter<cbor::Reader, cbor::Writer, |
16 | | - NamedTuple<FieldTypes...>> |
17 | | -struct Parser<cbor::Reader, cbor::Writer, NamedTuple<FieldTypes...>, |
18 | | - ProcessorsType> |
19 | | - : public NamedTupleParser< |
20 | | - cbor::Reader, cbor::Writer, |
21 | | - /*_ignore_empty_containers=*/false, |
22 | | - /*_all_required=*/true, |
23 | | - /*_no_field_names=*/ProcessorsType::no_field_names_, ProcessorsType, |
24 | | - FieldTypes...> {}; |
25 | | - |
26 | | -template <class ProcessorsType, class... Ts> |
27 | | - requires AreReaderAndWriter<cbor::Reader, cbor::Writer, rfl::Tuple<Ts...>> |
28 | | -struct Parser<cbor::Reader, cbor::Writer, rfl::Tuple<Ts...>, ProcessorsType> |
29 | | - : public TupleParser<cbor::Reader, cbor::Writer, |
30 | | - /*_ignore_empty_containers=*/false, |
31 | | - /*_all_required=*/true, ProcessorsType, |
32 | | - rfl::Tuple<Ts...>> {}; |
33 | | - |
34 | | -template <class ProcessorsType, class... Ts> |
35 | | - requires AreReaderAndWriter<cbor::Reader, cbor::Writer, std::tuple<Ts...>> |
36 | | -struct Parser<cbor::Reader, cbor::Writer, std::tuple<Ts...>, ProcessorsType> |
37 | | - : public TupleParser<cbor::Reader, cbor::Writer, |
38 | | - /*_ignore_empty_containers=*/false, |
39 | | - /*_all_required=*/true, ProcessorsType, |
40 | | - std::tuple<Ts...>> {}; |
41 | | - |
42 | | -} // namespace rfl::parsing |
43 | | - |
44 | 9 | namespace rfl::cbor { |
45 | 10 |
|
46 | 11 | template <class T, class ProcessorsType> |
|
0 commit comments