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#include "StringsExport.h"
7
8namespace SC
9{
12
20struct SC_STRINGS_EXPORT StringConverter
21{
24 {
26 DoNotTerminate
27 };
28
35 template <typename T>
36 [[nodiscard]] static bool appendEncodingTo(StringEncoding encoding, StringSpan text, T& buffer,
37 StringTermination nullTerminate)
38 {
39 GrowableBuffer<T> growableBuffer{buffer};
40 return appendEncodingTo(encoding, text, static_cast<IGrowableBuffer&>(growableBuffer), nullTerminate);
41 }
42
43 [[nodiscard]] static bool appendEncodingTo(StringEncoding encoding, StringSpan text, IGrowableBuffer& buffer,
44 StringTermination nullTerminate);
45 struct Internal;
46};
48} // namespace SC
Converts String to a different encoding (UTF8, UTF16).
Definition StringConverter.h:21
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:36
StringTermination
Specifies if to add a null terminator.
Definition StringConverter.h:24
@ NullTerminate
A null terminator will be added at the end of the String.
Definition StringConverter.h:25
An read-only view over a string (to avoid including Strings library when parsing is not needed).
Definition StringSpan.h:37