14#define TUTRCOS_VERIFY(expr) ((void)(expr))
16#define TUTRCOS_VERIFY(expr) assert((expr))
24 return static_cast<std::underlying_type_t<T>
>(value);
27template <
class... Args> std::string
format(
const char *fmt, Args... args) {
28 size_t size = std::snprintf(
nullptr, 0, fmt, args...);
29 std::string buf(size,
'\0');
30 std::snprintf(buf.data(), size + 1, fmt, args...);
35 std::vector<uint8_t> &dest) {
36 dest.resize(COBS_ENCODE_DST_BUF_LEN_MAX(src.size()));
37 cobs_encode_result res =
38 ::cobs_encode(dest.data(), dest.size(), src.data(), src.size());
39 if (res.status != COBS_ENCODE_OK) {
42 dest.resize(res.out_len);
47 std::vector<uint8_t> &dest) {
48 dest.resize(COBS_DECODE_DST_BUF_LEN_MAX(src.size()));
49 cobs_decode_result res =
50 ::cobs_decode(dest.data(), dest.size(), src.data(), src.size());
51 if (res.status != COBS_DECODE_OK) {
54 dest.resize(res.out_len);
std::string format(const char *fmt, Args... args)
Definition utility.hpp:27
constexpr std::underlying_type_t< T > to_underlying(T value) noexcept
Definition utility.hpp:23
bool cobs_encode(const std::vector< uint8_t > &src, std::vector< uint8_t > &dest)
Definition utility.hpp:34
bool cobs_decode(const std::vector< uint8_t > &src, std::vector< uint8_t > &dest)
Definition utility.hpp:46