IceShard 1
A personal game engine project, with development focused on 2D/2.5D games.
Loading...
Searching...
No Matches
i18n_string.hxx
Go to the documentation of this file.
1#pragma once
3#include <ice/string.hxx>
4
5namespace ice
6{
7
9 {
10 using CharType = char;
11 using ValueType = CharType const;
13 using ConstReverseIterator = std::reverse_iterator<ValueType*>;
18
19 I18NString(ice::String text) noexcept;
20 I18NString(ice::I18NReference reference) noexcept;
21
22 bool resolve() noexcept;
23 auto data() const noexcept -> ValueType*;
24 auto size() const noexcept -> SizeType;
25
26 operator ice::String() const noexcept { return { data(), size() }; }
27
28 public:
29 // Keep one pointer, and depending on the offset, either each for the dynamic values or the static values.
30 void const* _data = nullptr;
31 ice::i32 _data_offset = 0; // > 0 == not-resolved, < 0 == resolved
33 };
34
35} // namespace ice
Definition i18n_reference.hxx:9
SPDX-License-Identifier: MIT.
Definition array.hxx:12
ice::BasicString< char > String
Definition string.hxx:82
std::int32_t i32
Definition types.hxx:21
std::reverse_iterator< ValueType * > ConstReverseIterator
Definition i18n_string.hxx:13
auto size() const noexcept -> SizeType
ice::i32 _data_offset
Definition i18n_string.hxx:31
ice::i32 _size_offset
Definition i18n_string.hxx:32
ValueType * ConstIterator
Definition i18n_string.hxx:12
bool resolve() noexcept
ice::String StringType
Definition i18n_string.hxx:17
operator ice::String() const noexcept
Definition i18n_string.hxx:26
I18NString(ice::I18NReference reference) noexcept
auto data() const noexcept -> ValueType *
ice::ncount SizeType
Definition i18n_string.hxx:16
CharType const ValueType
Definition i18n_string.hxx:11
I18NString(ice::String text) noexcept
char CharType
Definition i18n_string.hxx:10
ConstIterator Iterator
Definition i18n_string.hxx:14
ConstReverseIterator ReverseIterator
Definition i18n_string.hxx:15
void const * _data
Definition i18n_string.hxx:30
Definition ncount.hxx:14
Definition readonly_operations.hxx:14