Browse Source

AK: Add Byte accessors for BigEndian and LittleEndian

Tim Schumacher 2 years ago
parent
commit
35bcdefdf7
1 changed files with 8 additions and 0 deletions
  1. 8 0
      AK/Endian.h

+ 8 - 0
AK/Endian.h

@@ -100,6 +100,10 @@ public:
 
 
     constexpr operator T() const { return convert_between_host_and_little_endian(m_value); }
     constexpr operator T() const { return convert_between_host_and_little_endian(m_value); }
 
 
+    // This returns the internal representation. In this case, that is the value stored in little endian format.
+    constexpr Bytes bytes() { return Bytes { &m_value, sizeof(m_value) }; }
+    constexpr ReadonlyBytes bytes() const { return ReadonlyBytes { &m_value, sizeof(m_value) }; }
+
 private:
 private:
     T m_value { 0 };
     T m_value { 0 };
 };
 };
@@ -128,6 +132,10 @@ public:
 
 
     constexpr operator T() const { return convert_between_host_and_big_endian(m_value); }
     constexpr operator T() const { return convert_between_host_and_big_endian(m_value); }
 
 
+    // This returns the internal representation. In this case, that is the value stored in big endian format.
+    constexpr Bytes bytes() { return Bytes { &m_value, sizeof(m_value) }; }
+    constexpr ReadonlyBytes bytes() const { return ReadonlyBytes { &m_value, sizeof(m_value) }; }
+
 private:
 private:
     T m_value { 0 };
     T m_value { 0 };
 };
 };