@@ -65,7 +65,7 @@ namespace nodepp { class json_t {
6565
6666 if ( data.empty () || data[x] == ' ,' ) /* ---*/ { return nullptr ; }
6767 elif ( data[x] == ' "' ) /* ---------------*/ {
68- return data.slice ( x+1 , get_next_sec ( x, data ) ); }
68+ return data.slice ( x+1 , get_next_sec ( x, data) ); }
6969 elif ( data[x] == ' {' ) /* ---------------*/ { return parse ( data ); }
7070 elif ( data[x] == ' [' ) /* ---------------*/ { return parse ( data ); }
7171 elif ( data.find (" false" ) ) /* ---------------*/ { return (bool ) 0 ; }
@@ -132,7 +132,7 @@ public: json_t() noexcept {}
132132 } elif ( str[x] == ' ]' || str[x] == ' }' || str[x] == ' )' ){
133133 return nullptr ;
134134 } else {
135- if ( string::is_space ( str[x] ) )
135+ if ( string::is_space ( str[x]) )
136136 { continue ; } data.push ( str[x] );
137137 }
138138
@@ -163,126 +163,118 @@ public: json_t() noexcept {}
163163
164164 switch ( obj.get_type_id () ){
165165
166- case 0x0001 : return string::to_string ( obj.as <int >() ); break ;
167- case 0x0002 : return string::to_string ( obj.as <uint>() ); break ;
168- case 0x0003 : return obj.as <bool >() ? " true" : " false" ; break ;
169- case 0x0004 : return string::format (" \" %c\" " ,obj.as <char >()); break ;
170- case 0x0005 : return string::to_string ( obj.as <long >() ); break ;
171- case 0x0006 : return string::to_string ( obj.as <short >() ); break ;
172- case 0x0007 : return string::to_string ( obj.as <uchar>() ); break ;
173- case 0x0008 : return string::to_string ( obj.as <llong>() ); break ;
174- case 0x0009 : return string::to_string ( obj.as <ulong>() ); break ;
175- case 0x000a : return string::to_string ( obj.as <ushort>() ); break ;
176- case 0x000b : return string::to_string ( obj.as <ullong>() ); break ;
177- case 0x000c : return string::to_string ( obj.as <wchar_t >() ); break ;
178- case 0x000d : return string::to_string ( obj.as <char16_t >() ); break ;
179- case 0x000e : return string::to_string ( obj.as <char32_t >() ); break ;
180- case 0x000f : return string::to_string ( obj.as <float >() ); break ;
181- case 0x0010 : return string::to_string ( obj.as <double >() ); break ;
182- case 0x0011 : return string::to_string ( obj.as <ldouble>() ); break ;
183- case 0x0012 : return regex ::format (" \" ${0}\" " ,obj.as <string_t >().get ()); break ;
184-
185- case 0xfA03 : do { out.push (' [' );
166+ case 0x0001 : return string::to_string ( obj.as <int > () ); break ;
167+ case 0x0002 : return string::to_string ( obj.as <uint> () ); break ;
168+ case 0x0003 : return obj.as <bool >() ? " true" : " false" ; break ;
169+ case 0x0004 : return string::format (" \" %c\" " ,obj.as <char >()); break ;
170+ case 0x0005 : return string::to_string ( obj.as <long > () ); break ;
171+ case 0x0006 : return string::to_string ( obj.as <short > () ); break ;
172+ case 0x0007 : return string::to_string ( obj.as <uchar> () ); break ;
173+ case 0x0008 : return string::to_string ( obj.as <llong> () ); break ;
174+ case 0x0009 : return string::to_string ( obj.as <ulong> () ); break ;
175+ case 0x000A : return string::to_string ( obj.as <ushort> () ); break ;
176+ case 0x000B : return string::to_string ( obj.as <ullong> () ); break ;
177+ case 0x000C : return string::to_string ( obj.as <wchar_t > () ); break ;
178+ case 0x000D : return string::to_string ( obj.as <float > () ); break ;
179+ case 0x000E : return string::to_string ( obj.as <double > () ); break ;
180+ case 0x000F : return string::to_string ( obj.as <ldouble> () ); break ;
181+ case 0x0010 : return regex ::format (" \" ${0}\" " ,obj.as <string_t >()); break ;
182+
183+ case 0xFA03 : do { out.push (' [' );
186184 for ( auto &x: obj.as <array_t <bool >>() )
187185 { out += regex::format (" \" ${0}\" ," ,x ? " true" :" false" ); }
188186 if ( out[ out.size ()-1 ] == ' ,' ){ out.pop (); }
189187 out.push (' ]' ); } while (0 ); break ;
190188
191- case 0xfA04 : do { out.push (' [' );
189+ case 0xFA04 : do { out.push (' [' );
192190 for ( auto &x: obj.as <array_t <char >>() )
193191 { out += string::format (" \" %c\" ," , x ); }
194192 if ( out[ out.size ()-1 ] == ' ,' ){ out.pop (); }
195193 out.push (' ]' ); } while (0 ); break ;
196194
197- case 0xfA12 : do { out.push (' [' );
195+ case 0xFA10 : do { out.push (' [' );
198196 for ( auto &x: obj.as <array_t <string_t >>() )
199197 { out += regex::format (" \" ${0}\" ," , x.get () ); }
200198 if ( out[ out.size ()-1 ] == ' ,' ){ out.pop (); }
201199 out.push (' ]' ); } while (0 ); break ;
202200
203- case 0xfA01 : return regex::format (" [${0}]" ,obj.as <array_t <int >>() .join ().get ()); break ;
204- case 0xfA02 : return regex::format (" [${0}]" ,obj.as <array_t <uint>>() .join ().get ()); break ;
205- case 0xfA05 : return regex::format (" [${0}]" ,obj.as <array_t <long >>() .join ().get ()); break ;
206- case 0xfA06 : return regex::format (" [${0}]" ,obj.as <array_t <short >>() .join ().get ()); break ;
207- case 0xfA07 : return regex::format (" [${0}]" ,obj.as <array_t <uchar>>() .join ().get ()); break ;
208- case 0xfA08 : return regex::format (" [${0}]" ,obj.as <array_t <llong>>() .join ().get ()); break ;
209- case 0xfA09 : return regex::format (" [${0}]" ,obj.as <array_t <ulong>>() .join ().get ()); break ;
210- case 0xfA0a : return regex::format (" [${0}]" ,obj.as <array_t <ushort>>() .join ().get ()); break ;
211- case 0xfA0b : return regex::format (" [${0}]" ,obj.as <array_t <ullong>>() .join ().get ()); break ;
212- case 0xfA0c : return regex::format (" [${0}]" ,obj.as <array_t <wchar_t >>() .join ().get ()); break ;
213- case 0xfA0d : return regex::format (" [${0}]" ,obj.as <array_t <char16_t >>().join ().get ()); break ;
214- case 0xfA0e : return regex::format (" [${0}]" ,obj.as <array_t <char32_t >>().join ().get ()); break ;
215- case 0xfA0f : return regex::format (" [${0}]" ,obj.as <array_t <float >>() .join ().get ()); break ;
216- case 0xfA10 : return regex::format (" [${0}]" ,obj.as <array_t <double >>() .join ().get ()); break ;
217- case 0xfA11 : return regex::format (" [${0}]" ,obj.as <array_t <ldouble>>() .join ().get ()); break ;
218-
219- case 0xf603 : do { out.push (' [' );
201+ case 0xFA01 : return regex::format (" [${0}]" ,string::join (obj.as <array_t <int >> ()) ); break ;
202+ case 0xFA02 : return regex::format (" [${0}]" ,string::join (obj.as <array_t <uint>> ()) ); break ;
203+ case 0xFA05 : return regex::format (" [${0}]" ,string::join (obj.as <array_t <long >> ()) ); break ;
204+ case 0xFA06 : return regex::format (" [${0}]" ,string::join (obj.as <array_t <short >> ()) ); break ;
205+ case 0xFA07 : return regex::format (" [${0}]" ,string::join (obj.as <array_t <uchar>> ()) ); break ;
206+ case 0xFA08 : return regex::format (" [${0}]" ,string::join (obj.as <array_t <llong>> ()) ); break ;
207+ case 0xFA09 : return regex::format (" [${0}]" ,string::join (obj.as <array_t <ulong>> ()) ); break ;
208+ case 0xFA0A : return regex::format (" [${0}]" ,string::join (obj.as <array_t <ushort>> ()) ); break ;
209+ case 0xFA0B : return regex::format (" [${0}]" ,string::join (obj.as <array_t <ullong>> ()) ); break ;
210+ case 0xFA0C : return regex::format (" [${0}]" ,string::join (obj.as <array_t <wchar_t >>()) ); break ;
211+ case 0xFA0D : return regex::format (" [${0}]" ,string::join (obj.as <array_t <float >> ()) ); break ;
212+ case 0xFA0E : return regex::format (" [${0}]" ,string::join (obj.as <array_t <double >> ()) ); break ;
213+ case 0xFA0F : return regex::format (" [${0}]" ,string::join (obj.as <array_t <ldouble>>()) ); break ;
214+
215+ case 0xF603 : do { out.push (' [' );
220216 for ( auto &x: obj.as <ptr_t <bool >>() )
221217 { out += regex::format (" \" ${0}\" ," ,x ? " true" :" false" ); }
222218 if ( out[ out.size ()-1 ] == ' ,' ){ out.pop (); }
223219 out.push (' ]' ); } while (0 ); break ;
224220
225- case 0xf604 : do { out.push (' [' );
221+ case 0xF604 : do { out.push (' [' );
226222 for ( auto &x: obj.as <ptr_t <char >>() )
227223 { out += string::format (" \" %c\" ," , x ); }
228224 if ( out[ out.size ()-1 ] == ' ,' ){ out.pop (); }
229225 out.push (' ]' ); } while (0 ); break ;
230226
231- case 0xf612 : do { out.push (' [' );
227+ case 0xF610 : do { out.push (' [' );
232228 for ( auto &x: obj.as <ptr_t <string_t >>() )
233229 { out += regex::format (" \" ${0}\" ," , x.get () ); }
234230 if ( out[ out.size ()-1 ] == ' ,' ){ out.pop (); }
235231 out.push (' ]' ); } while (0 ); break ;
236232
237- case 0xf601 : return regex::format (" [${0}]" ,array_t <int >(obj.as <ptr_t <int >>()) .join ().get ()); break ;
238- case 0xf602 : return regex::format (" [${0}]" ,array_t <uint>(obj.as <ptr_t <uint>>()) .join ().get ()); break ;
239- case 0xf605 : return regex::format (" [${0}]" ,array_t <long >(obj.as <ptr_t <long >>()) .join ().get ()); break ;
240- case 0xf606 : return regex::format (" [${0}]" ,array_t <short >(obj.as <ptr_t <short >>()) .join ().get ()); break ;
241- case 0xf607 : return regex::format (" [${0}]" ,array_t <uchar>(obj.as <ptr_t <uchar>>()) .join ().get ()); break ;
242- case 0xf608 : return regex::format (" [${0}]" ,array_t <llong>(obj.as <ptr_t <llong>>()) .join ().get ()); break ;
243- case 0xf609 : return regex::format (" [${0}]" ,array_t <ulong>(obj.as <ptr_t <ulong>>()) .join ().get ()); break ;
244- case 0xf60a : return regex::format (" [${0}]" ,array_t <ushort>(obj.as <ptr_t <ushort>>()) .join ().get ()); break ;
245- case 0xf60b : return regex::format (" [${0}]" ,array_t <ullong>(obj.as <ptr_t <ullong>>()) .join ().get ()); break ;
246- case 0xf60c : return regex::format (" [${0}]" ,array_t <wchar_t >(obj.as <ptr_t <wchar_t >>()) .join ().get ()); break ;
247- case 0xf60d : return regex::format (" [${0}]" ,array_t <char16_t >(obj.as <ptr_t <char16_t >>()).join ().get ()); break ;
248- case 0xf60e : return regex::format (" [${0}]" ,array_t <char32_t >(obj.as <ptr_t <char32_t >>()).join ().get ()); break ;
249- case 0xf60f : return regex::format (" [${0}]" ,array_t <float >(obj.as <ptr_t <float >>()) .join ().get ()); break ;
250- case 0xf610 : return regex::format (" [${0}]" ,array_t <double >(obj.as <ptr_t <double >>()) .join ().get ()); break ;
251- case 0xf611 : return regex::format (" [${0}]" ,array_t <ldouble>(obj.as <ptr_t <ldouble>>()) .join ().get ()); break ;
252-
253- case 0xf803 : do { out.push (' [' );
254- for ( auto &x: obj.as <queue_t <bool >>().data () )
255- { out += regex::format (" \" ${0}\" ," ,x ? " true" :" false" ); }
233+ case 0xF601 : return regex::format (" [${0}]" ,string::join (obj.as <ptr_t <int >> ()) ); break ;
234+ case 0xF602 : return regex::format (" [${0}]" ,string::join (obj.as <ptr_t <uint>> ()) ); break ;
235+ case 0xF605 : return regex::format (" [${0}]" ,string::join (obj.as <ptr_t <long >> ()) ); break ;
236+ case 0xF606 : return regex::format (" [${0}]" ,string::join (obj.as <ptr_t <short >> ()) ); break ;
237+ case 0xF607 : return regex::format (" [${0}]" ,string::join (obj.as <ptr_t <uchar>> ()) ); break ;
238+ case 0xF608 : return regex::format (" [${0}]" ,string::join (obj.as <ptr_t <llong>> ()) ); break ;
239+ case 0xF609 : return regex::format (" [${0}]" ,string::join (obj.as <ptr_t <ulong>> ()) ); break ;
240+ case 0xF60A : return regex::format (" [${0}]" ,string::join (obj.as <ptr_t <ushort>> ()) ); break ;
241+ case 0xF60B : return regex::format (" [${0}]" ,string::join (obj.as <ptr_t <ullong>> ()) ); break ;
242+ case 0xF60C : return regex::format (" [${0}]" ,string::join (obj.as <ptr_t <wchar_t >>()) ); break ;
243+ case 0xF60D : return regex::format (" [${0}]" ,string::join (obj.as <ptr_t <float >> ()) ); break ;
244+ case 0xF60E : return regex::format (" [${0}]" ,string::join (obj.as <ptr_t <double >> ()) ); break ;
245+ case 0xF60F : return regex::format (" [${0}]" ,string::join (obj.as <ptr_t <ldouble>>()) ); break ;
246+
247+ case 0xF803 : do { out.push (' [' );
248+ obj.as <queue_t <bool >>().map ([&]( bool x )
249+ { out += regex::format (" \" ${0}\" ," ,x ? " true" :" false" ); });
256250 if ( out[ out.size ()-1 ] == ' ,' ){ out.pop (); }
257251 out.push (' ]' ); } while (0 ); break ;
258252
259- case 0xf804 : do { out.push (' [' );
260- for ( auto &x: obj.as <queue_t <char >>().data () )
261- { out += string::format (" \" %c\" ," , x ); }
253+ case 0xF804 : do { out.push (' [' );
254+ obj.as <queue_t <char >>().map ([&]( char x )
255+ { out += string::format (" \" %c\" ," , x ); });
262256 if ( out[ out.size ()-1 ] == ' ,' ){ out.pop (); }
263257 out.push (' ]' ); } while (0 ); break ;
264258
265- case 0xf812 : do { out.push (' [' );
266- for ( auto &x: obj.as <queue_t <string_t >>().data () )
267- { out += regex::format (" \" ${0}\" ," , x.get () ); }
259+ case 0xF810 : do { out.push (' [' );
260+ obj.as <queue_t <string_t >>().map ([&]( string_t x )
261+ { out += regex::format (" \" ${0}\" ," , x.get () ); });
268262 if ( out[ out.size ()-1 ] == ' ,' ){ out.pop (); }
269263 out.push (' ]' ); } while (0 ); break ;
270264
271- case 0xf801 : return regex::format (" [${0}]" ,array_t <int >(obj.as <queue_t <int >>().data ()) .join ().get ()); break ;
272- case 0xf802 : return regex::format (" [${0}]" ,array_t <uint>(obj.as <queue_t <uint>>().data ()) .join ().get ()); break ;
273- case 0xf805 : return regex::format (" [${0}]" ,array_t <long >(obj.as <queue_t <long >>().data ()) .join ().get ()); break ;
274- case 0xf806 : return regex::format (" [${0}]" ,array_t <short >(obj.as <queue_t <short >>().data ()) .join ().get ()); break ;
275- case 0xf807 : return regex::format (" [${0}]" ,array_t <uchar>(obj.as <queue_t <uchar>>().data ()) .join ().get ()); break ;
276- case 0xf808 : return regex::format (" [${0}]" ,array_t <llong>(obj.as <queue_t <llong>>().data ()) .join ().get ()); break ;
277- case 0xf809 : return regex::format (" [${0}]" ,array_t <ulong>(obj.as <queue_t <ulong>>().data ()) .join ().get ()); break ;
278- case 0xf80a : return regex::format (" [${0}]" ,array_t <ushort>(obj.as <queue_t <ushort>>().data ()) .join ().get ()); break ;
279- case 0xf80b : return regex::format (" [${0}]" ,array_t <ullong>(obj.as <queue_t <ullong>>().data ()) .join ().get ()); break ;
280- case 0xf80c : return regex::format (" [${0}]" ,array_t <wchar_t >(obj.as <queue_t <wchar_t >>().data ()) .join ().get ()); break ;
281- case 0xf80d : return regex::format (" [${0}]" ,array_t <char16_t >(obj.as <queue_t <char16_t >>().data ()).join ().get ()); break ;
282- case 0xf80e : return regex::format (" [${0}]" ,array_t <char32_t >(obj.as <queue_t <char32_t >>().data ()).join ().get ()); break ;
283- case 0xf80f : return regex::format (" [${0}]" ,array_t <float >(obj.as <queue_t <float >>().data ()) .join ().get ()); break ;
284- case 0xf810 : return regex::format (" [${0}]" ,array_t <double >(obj.as <queue_t <double >>().data ()) .join ().get ()); break ;
285- case 0xf811 : return regex::format (" [${0}]" ,array_t <ldouble>(obj.as <queue_t <ldouble>>().data ()) .join ().get ()); break ;
265+ case 0xF801 : return regex::format (" [${0}]" ,string::join (obj.as <queue_t <int >> ()) ); break ;
266+ case 0xF802 : return regex::format (" [${0}]" ,string::join (obj.as <queue_t <uint>> ()) ); break ;
267+ case 0xF805 : return regex::format (" [${0}]" ,string::join (obj.as <queue_t <long >> ()) ); break ;
268+ case 0xF806 : return regex::format (" [${0}]" ,string::join (obj.as <queue_t <short >> ()) ); break ;
269+ case 0xF807 : return regex::format (" [${0}]" ,string::join (obj.as <queue_t <uchar>> ()) ); break ;
270+ case 0xF808 : return regex::format (" [${0}]" ,string::join (obj.as <queue_t <llong>> ()) ); break ;
271+ case 0xF809 : return regex::format (" [${0}]" ,string::join (obj.as <queue_t <ulong>> ()) ); break ;
272+ case 0xF80A : return regex::format (" [${0}]" ,string::join (obj.as <queue_t <ushort>> ()) ); break ;
273+ case 0xF80B : return regex::format (" [${0}]" ,string::join (obj.as <queue_t <ullong>> ()) ); break ;
274+ case 0xF80C : return regex::format (" [${0}]" ,string::join (obj.as <queue_t <wchar_t >>()) ); break ;
275+ case 0xF80D : return regex::format (" [${0}]" ,string::join (obj.as <queue_t <float >> ()) ); break ;
276+ case 0xF80E : return regex::format (" [${0}]" ,string::join (obj.as <queue_t <double >> ()) ); break ;
277+ case 0xF80F : return regex::format (" [${0}]" ,string::join (obj.as <queue_t <ldouble>>()) ); break ;
286278
287279 default : return " {}" ; break ;
288280 }
0 commit comments