mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-15 04:13:11 +00:00
AK: Add StringView::copy_characters_to_buffer()
This commit is contained in:
parent
3237efc661
commit
8209c2b570
|
@ -182,6 +182,18 @@ StringView StringView::substring_view_starting_after_substring(StringView substr
|
|||
return { remaining_characters, remaining_length };
|
||||
}
|
||||
|
||||
bool StringView::copy_characters_to_buffer(char* buffer, size_t buffer_size) const
|
||||
{
|
||||
// We must fit at least the NUL-terminator.
|
||||
VERIFY(buffer_size > 0);
|
||||
|
||||
size_t characters_to_copy = min(m_length, buffer_size - 1);
|
||||
__builtin_memcpy(buffer, m_characters, characters_to_copy);
|
||||
buffer[characters_to_copy] = 0;
|
||||
|
||||
return characters_to_copy == m_length;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
Optional<T> StringView::to_int() const
|
||||
{
|
||||
|
|
|
@ -192,6 +192,8 @@ public:
|
|||
[[nodiscard]] StringView substring_view_starting_from_substring(StringView substring) const;
|
||||
[[nodiscard]] StringView substring_view_starting_after_substring(StringView substring) const;
|
||||
|
||||
[[nodiscard]] bool copy_characters_to_buffer(char* buffer, size_t buffer_size) const;
|
||||
|
||||
constexpr bool operator==(char const* cstring) const
|
||||
{
|
||||
if (is_null())
|
||||
|
|
Loading…
Reference in a new issue