53 dccl::Bitset encode()
override {
return encode(0); }
55 dccl::Bitset encode(
const dccl::uint32& wire_value)
override
57 return dccl::Bitset(size(), wire_value - 0x7E0000);
60 dccl::uint32 decode(dccl::Bitset* bits)
override {
return 0x7E0000 + bits->to<dccl::uint32>(); }
62 unsigned size()
override {
return 2 * dccl::BITS_IN_BYTE; }
64 unsigned size(
const dccl::uint32& )
override {
return size(); }
66 unsigned max_size()
override {
return size(); }
68 unsigned min_size()
override {
return size(); }
71template <
typename Integer>
class SV2NumericCodec :
public dccl::TypedFixedFieldCodec<Integer>
74 unsigned size()
override
76 dccl::uint64 v = dccl::FieldCodecBase::dccl_field_options().max() + 1;
82 dccl::Bitset encode()
override {
return dccl::Bitset(size()); }
85 dccl::Bitset encode(
const Integer& i)
override
88 b.from<Integer>(i, size());
92 Integer decode(dccl::Bitset* bits)
override {
return bits->to<Integer>(); }
94 void validate()
override {}