acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
const_string_range_static_array.h
1// Created by camilo on 2025-04-24 19:01 <3ThomasBorregaardSorensen!!
2#pragma once
3
4
5//template < typename ITERATOR_TYPE, ::i32 t_size >
6//class const_string_range_static_array;
7//
8//template < typename ITERATOR_TYPE >
9//class const_string_range_static_array < ITERATOR_TYPE, 0>
10//{
11//public:
12//
13//
14// const_string_range_static_array() = delete;
15//
16// consteval character_count size() const { return 0; }
17//
18// ::range < ITERATOR_TYPE >& element_at(::i32 i) const { return *((::range < ITERATOR_TYPE >*)nullptr); }
19//
20// void concatenate_to(::non_const < ITERATOR_TYPE >& p) const
21// {
22//
23// }
24//
25//};
26//
27//
28//template < typename ITERATOR_TYPE >
29//class const_string_range_static_array < ITERATOR_TYPE, 1>
30//{
31//public:
32//
33// using iterator = ::non_const < ITERATOR_TYPE >;
34//
35// using RANGE = ::range < ITERATOR_TYPE >;
36//
37// using ASCENDANT = void;
38//
39// RANGE m_range;
40//
41//
42// const_string_range_static_array() = delete;
43//
44//
45// const_string_range_static_array(const RANGE& range) :
46// m_range(range)
47// {
48//
49//
50// }
51//
52// //template < prototype_character CHARACTER, character_count n >
53// //const_string_range_static_array(const CHARACTER(&s)[n]) :
54// // m_range(s)
55// //{
56//
57//
58// //}
59//
60// ::range < ITERATOR_TYPE >& top const { return (RANGE&)m_range; }
61//
62// constexpr character_count size() const { return this->m_range.size(); }
63//
64// template < prototype_character TARGET_CHARACTER >
65// character_count __utf_length(TARGET_CHARACTER* ptrigger, character_count*& plen) const
66// {
67//
68// return top.__utf_length(ptrigger, plen);
69//
70// }
71//
72// template < prototype_character TARGET_CHARACTER >
73// void __utf_concatenate_to(TARGET_CHARACTER*& p, character_count*& plen) const
74// {
75//
76// top.__utf_concatenate_to(p, plen);
77//
78// }
79//
80// void block_concatenate_to(iterator& p) const
81// {
82//
83// top.block_concatenate_to(p);
84//
85// }
86//
87//};
88//
89//
90//template < typename ITERATOR_TYPE, ::i32 t_size >
91//class const_string_range_static_array
92//{
93//public:
94//
95// using iterator = ::non_const < ITERATOR_TYPE >;
96//
97// using RANGE = ::range < ITERATOR_TYPE >;
98//
99// using ASCENDANT = ::const_string_range_static_array < ITERATOR_TYPE, t_size - 1 >;
100//
101// RANGE m_rangea[t_size];
102//
103// const_string_range_static_array() = delete;
104//
105// const_string_range_static_array(const ASCENDANT& a, const RANGE& range)
106// {
107//
108// ascendant() = a;
109//
110// top = range;
111//
112// }
113//
114// auto& ascendant() const { return *(ASCENDANT*)this; }
115//
116// auto& element_at(::i32 i) const { return (RANGE&)m_rangea[i]; }
117//
118// auto& top const { return element_at(t_size - 1); }
119//
120// character_count size() const
121// {
122//
123// return ascendant().size() + top.size();
124//
125// }
126//
127// template < prototype_character TARGET_CHARACTER >
128// character_count __utf_length(TARGET_CHARACTER* ptrigger, character_count*& plen) const
129// {
130//
131// auto n1 = ascendant().__utf_length(ptrigger, plen);
132//
133// auto n2 = top.__utf_length(ptrigger, plen);
134//
135// return n1 + n2;
136//
137// }
138//
139// template < prototype_character TARGET_CHARACTER >
140// void __utf_concatenate_to(TARGET_CHARACTER*& p, character_count*& plen) const
141// {
142//
143// ascendant().__utf_concatenate_to(p, plen);
144//
145// top.__utf_concatenate_to(p, plen);
146//
147// }
148//
149// void block_concatenate_to(iterator& p) const
150// {
151//
152// ascendant().block_concatenate_to(p);
153//
154// top.block_concatenate_to(p);
155//
156// }
157//
158//
159//
160//};
161//