diff options
author | Morph <39850852+Morph1984@users.noreply.github.com> | 2022-02-13 18:53:21 -0500 |
---|---|---|
committer | Morph <39850852+Morph1984@users.noreply.github.com> | 2022-02-13 18:53:21 -0500 |
commit | 4390370a19190ba2223739bd4d98b460d0e680a8 (patch) | |
tree | e4249df78ef8c542cea1d51e8febc1f0e9800c7a /src/common/fs/fs_util.h | |
parent | eaca010ee97ad2bdc8e54b347b93f01bf163c9d8 (diff) |
common: fs_util: Add buffer to string view utility functions
These functions allow to construct a string view from an input buffer, avoiding the copy done by the non string view counterparts. However, callers must be cognizant of the viewed buffer's lifetime to avoid a use-after-free.
Diffstat (limited to 'src/common/fs/fs_util.h')
-rw-r--r-- | src/common/fs/fs_util.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/common/fs/fs_util.h b/src/common/fs/fs_util.h index 1ec82eb35..1620d38c9 100644 --- a/src/common/fs/fs_util.h +++ b/src/common/fs/fs_util.h @@ -38,6 +38,15 @@ concept IsChar = std::same_as<T, char>; [[nodiscard]] std::u8string BufferToU8String(std::span<const u8> buffer); /** + * Same as BufferToU8String, but returns a string view of the buffer. + * + * @param buffer Buffer of bytes + * + * @returns UTF-8 encoded std::u8string_view. + */ +[[nodiscard]] std::u8string_view BufferToU8StringView(std::span<const u8> buffer); + +/** * Converts a std::u8string or std::u8string_view to a UTF-8 encoded std::string. * * @param u8_string UTF-8 encoded u8string @@ -58,6 +67,15 @@ concept IsChar = std::same_as<T, char>; [[nodiscard]] std::string BufferToUTF8String(std::span<const u8> buffer); /** + * Same as BufferToUTF8String, but returns a string view of the buffer. + * + * @param buffer Buffer of bytes + * + * @returns UTF-8 encoded std::string_view. + */ +[[nodiscard]] std::string_view BufferToUTF8StringView(std::span<const u8> buffer); + +/** * Converts a filesystem path to a UTF-8 encoded std::string. * * @param path Filesystem path |