mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 06:27:45 +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
1 changed files with 17 additions and 0 deletions
17
AK/Span.h
17
AK/Span.h
|
@ -64,12 +64,20 @@ public:
|
||||||
, m_size(size)
|
, m_size(size)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
ALWAYS_INLINE Span(void* values, size_t size)
|
ALWAYS_INLINE Span(void* values, size_t size)
|
||||||
: m_values(reinterpret_cast<u8*>(values))
|
: m_values(reinterpret_cast<u8*>(values))
|
||||||
, m_size(size)
|
, m_size(size)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<size_t size>
|
||||||
|
ALWAYS_INLINE constexpr Span(u8 (&values)[size])
|
||||||
|
: m_values(values)
|
||||||
|
, m_size(size)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
u8* m_values { nullptr };
|
u8* m_values { nullptr };
|
||||||
size_t m_size { 0 };
|
size_t m_size { 0 };
|
||||||
|
@ -85,17 +93,26 @@ public:
|
||||||
, m_size(size)
|
, m_size(size)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
ALWAYS_INLINE Span(void const* values, size_t size)
|
ALWAYS_INLINE Span(void const* values, size_t size)
|
||||||
: m_values(reinterpret_cast<u8 const*>(values))
|
: m_values(reinterpret_cast<u8 const*>(values))
|
||||||
, m_size(size)
|
, m_size(size)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
ALWAYS_INLINE Span(char const* values, size_t size)
|
ALWAYS_INLINE Span(char const* values, size_t size)
|
||||||
: m_values(reinterpret_cast<u8 const*>(values))
|
: m_values(reinterpret_cast<u8 const*>(values))
|
||||||
, m_size(size)
|
, m_size(size)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<size_t size>
|
||||||
|
ALWAYS_INLINE constexpr Span(u8 const (&values)[size])
|
||||||
|
: m_values(values)
|
||||||
|
, m_size(size)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
u8 const* m_values { nullptr };
|
u8 const* m_values { nullptr };
|
||||||
size_t m_size { 0 };
|
size_t m_size { 0 };
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue