28template < prototype_enum ENUM >
29payload & payload::operator = (ENUM e) { this->operator = ((const ::atom &) e);
return *
this; }
32template <
character_count n >
33payload & payload::operator = (const ::i8(&cha)[n])
36 return this->operator = (::string(cha));
41inline ::string payload::as_string()
const
44 return this->as_string(
nullptr);
49inline class payload & payload::operator = (const ::scoped_string & scopedstr)
52 set_string(scopedstr);
59inline class payload & payload::operator = (const ::string & str)
69inline class payload & payload::operator = (::string && str)
72 set_string(::transfer(str));
79inline class payload & payload::operator = (::const_ansi_range ansirange)
82 set_string(ansirange);
89inline class payload & payload::operator = (
const inline_number_string & inlinenumberstring)
92 set_string(inlinenumberstring);
100template <
typename BLOCK_TYPE >
101payload::payload(const ::raw_block < BLOCK_TYPE > & rawblock) :
106 operator = (rawblock.block());
214 virtual public particle
240inline payload __visible(
payload varOptions,
bool bVisible =
true);
242inline payload __visible(
bool bVisible) {
return __visible(::e_type_new, bVisible); }
248template < prototype_
integral INTEGRAL >
249inline ::payload payload::operator - (INTEGRAL i)
const
251 return ((INTEGRAL)*
this) - i;
255template < prototype_
floating FLOATING >
256inline ::payload payload::operator - (FLOATING f)
const
258 return ((FLOATING)*
this) - f;
262template < prototype_
integral INTEGRAL >
263inline ::payload payload::operator + (INTEGRAL i)
const
265 return ((INTEGRAL)*
this) + i;
269template < prototype_
floating FLOATING >
270inline ::payload payload::operator + (FLOATING f)
const
272 return ((FLOATING)*
this) + f;
276template < prototype_
integral INTEGRAL >
279 return ((INTEGRAL)*
this) / i;
283template < prototype_
floating FLOATING >
286 return ((FLOATING)*
this) / f;
290template < prototype_
integral INTEGRAL >
291inline ::payload payload::operator * (INTEGRAL i)
const
293 return ((INTEGRAL)*
this) * i;
297template < prototype_
floating FLOATING >
298inline ::payload payload::operator * (FLOATING f)
const
300 return ((FLOATING)*
this) * f;
304#include "__payload_cast.h"
307template < prototype_
integral INTEGRAL, prototype_payload PAYLOAD >
308inline ::payload operator - (INTEGRAL i,
const PAYLOAD &
payload)
314template < prototype_
floating FLOATING, prototype_payload PAYLOAD >
315inline ::payload operator - (FLOATING i,
const PAYLOAD &
payload)
321template < prototype_
integral INTEGRAL, prototype_payload PAYLOAD >
322inline ::payload operator + (INTEGRAL i,
const PAYLOAD &
payload)
328template < prototype_
floating FLOATING, prototype_payload PAYLOAD >
329inline ::payload operator + (FLOATING i,
const PAYLOAD &
payload)
335template < prototype_
integral INTEGRAL, prototype_payload PAYLOAD >
336inline ::payload operator / (INTEGRAL i,
const PAYLOAD &
payload)
342template < prototype_
floating FLOATING, prototype_payload PAYLOAD >
343inline ::payload operator / (FLOATING i,
const PAYLOAD &
payload)
349template < prototype_
integral INTEGRAL, prototype_payload PAYLOAD >
350inline ::payload operator * (INTEGRAL i,
const PAYLOAD &
payload)
356template < prototype_
floating FLOATING, prototype_payload PAYLOAD >
357inline ::payload operator * (FLOATING i,
const PAYLOAD &
payload)
364template < prototype_
integral INTEGRAL >
365inline ::payload & payload::operator -= (INTEGRAL i)
367 return *
this = ((INTEGRAL)payload_cast(*
this)) - i;
371template < prototype_
floating FLOATING >
372inline ::payload & payload::operator -= (FLOATING f)
374 return *
this = ((FLOATING)payload_cast(*
this)) - f;
378template < prototype_
integral INTEGRAL >
379inline ::payload & payload::operator += (INTEGRAL i)
381 return *
this = ((INTEGRAL)(payload_cast(*
this))) + i;
385template < prototype_
floating FLOATING >
386inline ::payload & payload::operator += (FLOATING f)
388 return *
this = ((FLOATING)payload_cast(*
this)) + f;
392template < prototype_
integral INTEGRAL >
393inline ::payload & payload::operator /= (INTEGRAL i)
395 return *
this = ((INTEGRAL)payload_cast(*
this)) / i;
399template < prototype_
floating FLOATING >
400inline ::payload & payload::operator /= (FLOATING f)
402 return *
this = ((FLOATING)payload_cast(*
this)) / f;
406template < prototype_
integral INTEGRAL >
407inline ::payload & payload::operator *= (INTEGRAL i)
409 return *
this = ((INTEGRAL)payload_cast(*
this)) * i;
413template < prototype_
floating FLOATING >
414inline ::payload & payload::operator *= (FLOATING f)
416 return *
this = ((FLOATING)payload_cast(*
this)) * f;
437template < prototype_payload PAYLOAD >
438inline bool strictly_different(const ::scoped_string & scopedstr,
const PAYLOAD &
payload);
439template < prototype_payload PAYLOAD >
440inline bool strictly_different(const ::scoped_string & scopedstr,
const PAYLOAD &
payload);
441template < prototype_payload PAYLOAD >
442inline bool strictly_different(::f64 d,
const PAYLOAD &
payload);
443template < prototype_payload PAYLOAD >
444inline bool strictly_different(::i32 i,
const PAYLOAD &
payload);
445template < prototype_payload PAYLOAD >
446inline bool strictly_different(
bool b,
const PAYLOAD &
payload);
470CLASS_DECL_ACME::string as_string(const ::payload &
payload);
494template < prototype_subparticle T >
495inline ::pointer < T > payload::cast(T * pDefault)
511 auto psubparticle = get_subparticle();
520 auto p =
dynamic_cast<T*
>(psubparticle);
534template < prototype_subparticle T >
535inline T * payload::cast()
538 auto psubparticle = get_subparticle();
547 auto p =
dynamic_cast<T*
>(psubparticle);
561template < prototype_subparticle T >
562inline T * payload::cast()
const
565 return ((::payload*)
this)->cast < T >();
570template < prototype_subparticle T >
571inline ::pointer < T > payload::as_pointer()
574 auto psubparticle = get_subparticle();
583 ::pointer < T > p = psubparticle;
592 return ::transfer(p);
597template < prototype_subparticle T >
598inline ::pointer < T > payload::as_pointer()
const
601 return ::transfer(((::payload*)
this)->as_pointer < T >());
670template <
typename T >
671inline pointer < T > payload::pointer()
const
674 auto pproperty = find_pointer < T >();
683 return pproperty->template cast < T >();
688inline ::payload __visible(
::payload varOptions,
bool bVisible)
691 varOptions[
"visible"] = bVisible;
729 block.operator=(r.as_block());
734#if defined(__APPLE__) || defined(__ANDROID__) || defined(RASPBERRYPIOS) || defined(WINDOWS)
748 ul =
payload.get_unsigned_long();
770 inline path path::folder()
const {
return { ::file_path_folder(c_str()), m_epath }; }
772 inline path path::sibling(const ::scoped_string & scopedstr)
const {
return { ::file_path_folder(c_str()) + ::string(
"/") + ::sz::trim_left_path_sep(scopedstr.begin()), m_epath }; }
775 inline ::const_ansi_range path::all_extensions()
const
778 auto p = this->rear_find(
'/');
787 auto range = subrange(p);
789 p = range.find_skip_or_end(
'.');
791 return { p, this->end() };
796 inline ::const_ansi_range path::final_extension()
const
799 auto rangeName = this->name();
801 auto last_dot = rangeName.rear_find(
'.');
810 return { last_dot + 1, rangeName.end() };
867inline payload payload::operator -(const ::payload &
payload)
const
870 return ::transfer(subtraction(payload));
880 return ::transfer(multiplication(payload));
888 return ::transfer(division(payload));
914 return multiply(payload);
923 return divide(payload);
928template <
typename CHAR_TYPE >
929inline ::string_base < CHAR_TYPE > & copy(::string_base < CHAR_TYPE > &
string, const ::payload &
payload)
939template < prototype_
integral INTEGRAL >
940inline INTEGRAL & copy(INTEGRAL & integral, const ::payload &
payload)
943 return integral =
payload.as(integral);
948inline ::f32 & copy(::f32 & f, const ::payload &
payload)
956inline ::f64 & copy(::f64 & f, const ::payload &
payload)
964template < prototype_number NUMBER >
973template <
typename CHAR_TYPE >
974inline ::payload & copy(
::payload &
payload, const ::string_base < CHAR_TYPE > &
string)
982inline ::payload & copy(
::payload & payload1, const ::payload & payload2)
985 return payload1 = payload2;
1085template <
typename ITERATOR_TYPE >
1086string_base < ITERATOR_TYPE > & string_base < ITERATOR_TYPE >::append(const ::payload &
payload)
1089 if (
payload.m_etype == e_type_string)
1098 return append(
payload.as_string());
1109 inline path::path(const ::payload & payload) :
1110 path(payload.as_file_path())
1176template <
typename PRIMITIVE >
1177payload& payload::__assign_primitive(PRIMITIVE& member, enum_type etype, PRIMITIVE prototype)
1180 if (__assign_to_held_pointer_member(prototype))
1200 set_type(etype,
false);
Definition __payload_cast.h:13
Definition _impl_payload.h:215
payload operator/(const ::payload &payload) const
template < prototype_payload PAYLOAD >
Definition _impl_payload.h:885
Definition filesystem.h:16