Sane C++ Libraries
C++ Platform Abstraction Libraries
Loading...
Searching...
No Matches
StringConverter.h
1// Copyright (c) Stefano Cristiano
2// SPDX-License-Identifier: MIT
3#pragma once
4#include "../Foundation/Internal/IGrowableBuffer.h"
5#include "../Foundation/StringSpan.h"
6
7namespace SC
8{
11
19struct SC_COMPILER_EXPORT StringConverter
20{
23 {
25 DoNotTerminate
26 };
27
34 template <typename T>
35 [[nodiscard]] static bool appendEncodingTo(StringEncoding encoding, StringSpan text, T& buffer,
36 StringTermination nullTerminate)
37 {
38 GrowableBuffer<T> growableBuffer{buffer};
39 return appendEncodingTo(encoding, text, static_cast<IGrowableBuffer&>(growableBuffer), nullTerminate);
40 }
41
42 [[nodiscard]] static bool appendEncodingTo(StringEncoding encoding, StringSpan text, IGrowableBuffer& buffer,
43 StringTermination nullTerminate);
44 struct Internal;
45};
47} // namespace SC
Converts String to a different encoding (UTF8, UTF16).
Definition StringConverter.h:20
static bool appendEncodingTo(StringEncoding encoding, StringSpan text, T &buffer, StringTermination nullTerminate)
Appends to buffer text with requested encoding, optionally null-terminating it too.
Definition StringConverter.h:35
StringTermination
Specifies if to add a null terminator.
Definition StringConverter.h:23
@ NullTerminate
A null terminator will be added at the end of the String.
Definition StringConverter.h:24
An read-only view over a string (to avoid including Strings library when parsing is not needed).
Definition StringSpan.h:37