1#ifndef OE_UTIL_BYTE_ARRAY_H
2#define OE_UTIL_BYTE_ARRAY_H
15 typedef std::vector<std::byte> ByteArray;
16 typedef std::span<const std::byte> ByteSpan;
28 ByteArray result(input.size());
30 std::ranges::transform(input, result.begin(),
31 [] (
const uint8_t& c) { return std::byte(c); }
44 std::vector<uint8_t> result(input.size());
46 std::ranges::transform(input, result.begin(),
47 [] (
const std::byte& c) { return std::to_integer<char>(c); }
54 inline T convertFromByteArray(ByteSpan input)
56 return *
reinterpret_cast<const T*
>(input.data());
60 inline ByteArray convertToByteArray(
const T& input)
64 constexpr const size_t size =
sizeof(T);
68 auto ptr =
reinterpret_cast<const uint8_t*
>(&input);
69 for (std::size_t i=0; i<size; ++i)
71 result.push_back(std::byte(ptr[i]));
82 if (input.size() == 0)
87 return {
reinterpret_cast<const char*
>(input.data()), input.size()};
95 ByteArray result(input.size());
97 std::ranges::transform(input, result.begin(),
98 [] (
char c) { return std::byte(c); }
107 std::string
bytesToHex(ByteSpan input,
bool uppercase =
false);
Various utilities.
Definition byte_array.h:20
std::string bytesToStr(ByteSpan input)
Definition byte_array.h:80
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:26
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:42
ByteArray strToBytes(std::string_view input)
Definition byte_array.h:93
Oxygen Engine common namespace.
Definition cursor.h:8