mirror of
https://github.com/SerenityOS/serenity
synced 2024-07-22 10:36:24 +00:00
AK: Add templated Span<u8> and Span<u8 const> constructors for C-arrays
This helper constructor exists on the unspecialized Span<T> class also, and is convenient for e.g. creating Bytes from: u8 buffer[64]; Bytes bytes { buffer };
This commit is contained in:
parent
f7960ffbe3
commit
5c045b6934
17
AK/Span.h
17
AK/Span.h
|
@ -64,12 +64,20 @@ public:
|
|||
, m_size(size)
|
||||
{
|
||||
}
|
||||
|
||||
ALWAYS_INLINE Span(void* values, size_t size)
|
||||
: m_values(reinterpret_cast<u8*>(values))
|
||||
, m_size(size)
|
||||
{
|
||||
}
|
||||
|
||||
template<size_t size>
|
||||
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<u8 const*>(values))
|
||||
, m_size(size)
|
||||
{
|
||||
}
|
||||
|
||||
ALWAYS_INLINE Span(char const* values, size_t size)
|
||||
: m_values(reinterpret_cast<u8 const*>(values))
|
||||
, m_size(size)
|
||||
{
|
||||
}
|
||||
|
||||
template<size_t size>
|
||||
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 };
|
||||
|
|
Loading…
Reference in a new issue