namespace detail {
// global functions
void set_u1(uint8_t \* buf, size_t idx, uint8_t val);
uint8_t get_u1(const uint8_t \* buf, size_t idx);
void set_u4(uint8_t \* buf, size_t idx, uint8_t val);
uint8_t get_u4(const uint8_t \* buf, size_t idx);
void set_i4(uint8_t \* buf, size_t idx, int8_t val);
int8_t get_i4(const uint8_t \* buf, size_t idx);
template <typename TO, typename TI>
TO get_value(
const uint8_t \* buf,
size_t idx,
element::Type from_type
);
template <typename TI, typename TO>
void lp_convert(
const TI \* arg,
TO \* out,
size_t count,
element::Type_t src_type,
element::Type_t dst_type
);
} // namespace detail