1#ifndef OE_UTIL_BYTE_ARRAY_H
2#define OE_UTIL_BYTE_ARRAY_H
13 typedef std::vector<std::byte> ByteArray;
14 typedef std::span<const std::byte> ByteSpan;
26 ByteArray result(input.size());
28 std::ranges::transform(input, result.begin(),
29 [] (
const uint8_t& c) { return std::byte(c); }
42 std::vector<uint8_t> result(input.size());
44 std::ranges::transform(input, result.begin(),
45 [] (
const std::byte& c) { return std::to_integer<char>(c); }
52 inline T convertFromByteArray(ByteSpan input)
54 return *
reinterpret_cast<const T*
>(input.data());
58 inline ByteArray convertToByteArray(
const T& input)
62 constexpr const size_t size =
sizeof(T);
66 auto ptr =
reinterpret_cast<const uint8_t*
>(&input);
67 for (std::size_t i=0; i<size; ++i)
69 result.push_back(std::byte(ptr[i]));
80 if (input.size() == 0)
85 return {
reinterpret_cast<const char*
>(input.data()), input.size()};
93 ByteArray result(input.size());
95 std::ranges::transform(input, result.begin(),
96 [] (
char c) { return std::byte(c); }
105 std::string
bytesToHex(ByteSpan input,
bool uppercase =
false);
Various utilities.
Definition node.h:15
std::string bytesToStr(ByteSpan input)
Definition byte_array.h:78
std::string bytesToHex(ByteSpan input, bool uppercase=false)
ByteArray convertUint8VectorToByteArray(const std::vector< uint8_t > &input)
Convert a vector of uint8_t to ByteArray.
Definition byte_array.h:24
ByteArray hexToBytes(const std::string &input)
std::vector< uint8_t > convertByteArrayToUint8Vector(ByteSpan input)
Convert a Byte Span to vector of uint8_t.
Definition byte_array.h:40
ByteArray strToBytes(std::string_view input)
Definition byte_array.h:91
Oxygen Engine common namespace.
Definition debug.h:17