diff --git a/AK/Span.h b/AK/Span.h index 6816797cf7..efa23636fb 100644 --- a/AK/Span.h +++ b/AK/Span.h @@ -322,6 +322,20 @@ using ReadonlySpan = Span; using ReadonlyBytes = ReadonlySpan; using Bytes = Span; +template +requires(IsTrivial) +ReadonlyBytes to_readonly_bytes(Span span) +{ + return ReadonlyBytes { static_cast(span.data()), span.size() * sizeof(T) }; +} + +template +requires(IsTrivial && !IsConst) +Bytes to_bytes(Span span) +{ + return Bytes { static_cast(span.data()), span.size() * sizeof(T) }; +} + } #if USING_AK_GLOBALLY @@ -329,4 +343,6 @@ using AK::Bytes; using AK::ReadonlyBytes; using AK::ReadonlySpan; using AK::Span; +using AK::to_bytes; +using AK::to_readonly_bytes; #endif