AK: Add StringView(String const&) constructor

This allows us to pass the new String type to functions that take a
StringView directly, having to call bytes_as_string_view() every time
gets old quickly.
This commit is contained in:
Linus Groh 2022-12-06 20:39:11 +00:00
parent daec065fde
commit f23b55ae86
Notes: sideshowbarker 2024-07-17 03:42:10 +09:00
2 changed files with 9 additions and 0 deletions

View file

@ -16,11 +16,18 @@
#ifndef KERNEL #ifndef KERNEL
# include <AK/DeprecatedString.h> # include <AK/DeprecatedString.h>
# include <AK/FlyString.h> # include <AK/FlyString.h>
# include <AK/String.h>
#endif #endif
namespace AK { namespace AK {
#ifndef KERNEL #ifndef KERNEL
StringView::StringView(String const& string)
: m_characters(reinterpret_cast<char const*>(string.bytes().data()))
, m_length(string.bytes().size())
{
}
StringView::StringView(DeprecatedString const& string) StringView::StringView(DeprecatedString const& string)
: m_characters(string.characters()) : m_characters(string.characters())
, m_length(string.length()) , m_length(string.length())

View file

@ -42,12 +42,14 @@ public:
StringView(ByteBuffer const&); StringView(ByteBuffer const&);
#ifndef KERNEL #ifndef KERNEL
StringView(String const&);
StringView(DeprecatedString const&); StringView(DeprecatedString const&);
StringView(FlyString const&); StringView(FlyString const&);
#endif #endif
explicit StringView(ByteBuffer&&) = delete; explicit StringView(ByteBuffer&&) = delete;
#ifndef KERNEL #ifndef KERNEL
explicit StringView(String&&) = delete;
explicit StringView(DeprecatedString&&) = delete; explicit StringView(DeprecatedString&&) = delete;
explicit StringView(FlyString&&) = delete; explicit StringView(FlyString&&) = delete;
#endif #endif