diff --git a/AK/Span.h b/AK/Span.h index 4399dcc136..6c77ce04f4 100644 --- a/AK/Span.h +++ b/AK/Span.h @@ -64,12 +64,20 @@ public: , m_size(size) { } + ALWAYS_INLINE Span(void* values, size_t size) : m_values(reinterpret_cast(values)) , m_size(size) { } + template + ALWAYS_INLINE constexpr Span(u8 (&values)[size]) + : m_values(values) + , m_size(size) + { + } + protected: u8* m_values { nullptr }; size_t m_size { 0 }; @@ -85,17 +93,26 @@ public: , m_size(size) { } + ALWAYS_INLINE Span(void const* values, size_t size) : m_values(reinterpret_cast(values)) , m_size(size) { } + ALWAYS_INLINE Span(char const* values, size_t size) : m_values(reinterpret_cast(values)) , m_size(size) { } + template + ALWAYS_INLINE constexpr Span(u8 const (&values)[size]) + : m_values(values) + , m_size(size) + { + } + protected: u8 const* m_values { nullptr }; size_t m_size { 0 };