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 "../Common/IGrowableBufferSpan.h"
5#include "../Common/StringSpan.h"
6#include "StringsExport.h"
7
8namespace SC
9{
12
24struct SC_STRINGS_EXPORT StringConverter
25{
28 {
30 DoNotTerminate
31 };
32
39 template <typename T>
40 [[nodiscard]] static bool appendEncodingTo(StringEncoding encoding, StringSpan text, T& buffer,
41 StringTermination nullTerminate)
42 {
43 GrowableBuffer<T> growableBuffer{buffer};
44 return appendEncodingTo(encoding, text, static_cast<IGrowableBuffer&>(growableBuffer), nullTerminate);
45 }
46
47 [[nodiscard]] static bool appendEncodingTo(StringEncoding encoding, StringSpan text, IGrowableBuffer& buffer,
48 StringTermination nullTerminate);
49 struct Internal;
50};
52} // namespace SC
Converts String to a different encoding (UTF8, UTF16).
Definition StringConverter.h:25
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:40
StringTermination
Specifies if to add a null terminator.
Definition StringConverter.h:28
@ NullTerminate
A null terminator will be added at the end of the String.
Definition StringConverter.h:29