From 303cf4b7fc23f04d9ae493813478846e70b0893d Mon Sep 17 00:00:00 2001 From: mguludag Date: Sun, 9 Jun 2024 22:58:24 +0000 Subject: [PATCH] deploy: 03eb4375aa6044fb5c8f1e7fad4b00ccfd17746b --- git-main/annotated.html | 107 + git-main/bc_s.png | Bin 0 -> 676 bytes git-main/bc_sd.png | Bin 0 -> 635 bytes git-main/classes.html | 107 + ...tility_1_1basic__string__view-members.html | 117 + ...classmgutility_1_1basic__string__view.html | 989 ++++++++ ...smgutility_1_1enum__for__each-members.html | 97 + .../classmgutility_1_1enum__for__each.html | 219 ++ .../classmgutility_1_1optional-members.html | 119 + git-main/classmgutility_1_1optional.html | 866 +++++++ git-main/clipboard.js | 61 + git-main/closed.png | Bin 0 -> 132 bytes git-main/cookie.js | 58 + git-main/definitions_8hpp.html | 166 ++ git-main/definitions_8hpp_source.html | 150 ++ .../dir_0a228a9be9cda87819ec14c07e96fe30.html | 97 + .../dir_1904106e3967c35fb25a825ca0fb226d.html | 98 + .../dir_4fef79e7177ba769987a8da36c892c5f.html | 90 + .../dir_59425e443f801f1f2fd8bbe4959a3ccf.html | 90 + .../dir_6c89d1ed406002b4e6ebce07fb51a507.html | 90 + .../dir_9906c0397c90d50fffbda6b5916b0cc4.html | 100 + .../dir_9d7aa4e812851a81659bf8c9239b798a.html | 101 + .../dir_a46d1db4cfb32f5c0c9ab8e71dda6e10.html | 100 + .../dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html | 90 + .../dir_d44c64559bbebec7f509842c48db8b23.html | 90 + git-main/doc.svg | 12 + git-main/docd.svg | 12 + git-main/doxygen.css | 2225 +++++++++++++++++ git-main/doxygen.svg | 28 + git-main/doxygen_crawl.html | 102 + git-main/dynsections.js | 194 ++ git-main/enum__for__each_8hpp_source.html | 222 ++ git-main/enum__name_8hpp_source.html | 247 ++ git-main/enum__name__impl_8hpp_source.html | 332 +++ git-main/files.html | 103 + git-main/folderclosed.svg | 11 + git-main/folderclosedd.svg | 11 + git-main/folderopen.svg | 17 + git-main/folderopend.svg | 12 + git-main/functions.html | 165 ++ git-main/functions_func.html | 157 ++ git-main/functions_rela.html | 88 + git-main/functions_type.html | 86 + git-main/functions_vars.html | 86 + git-main/globals.html | 88 + git-main/globals_defs.html | 88 + git-main/hierarchy.html | 108 + git-main/index.html | 90 + git-main/jquery.js | 34 + ...2work_2enum__name_2enum__name_2README.html | 221 ++ git-main/menu.js | 134 + git-main/menudata.js | 73 + git-main/meta_8hpp_source.html | 205 ++ git-main/minus.svg | 8 + git-main/minusd.svg | 8 + git-main/namespacemembers.html | 90 + git-main/namespacemembers_func.html | 89 + git-main/namespacemembers_vars.html | 86 + git-main/namespacemgutility.html | 367 +++ git-main/namespaces.html | 99 + git-main/nav_f.png | Bin 0 -> 153 bytes git-main/nav_fd.png | Bin 0 -> 169 bytes git-main/nav_g.png | Bin 0 -> 95 bytes git-main/nav_h.png | Bin 0 -> 98 bytes git-main/nav_hd.png | Bin 0 -> 114 bytes git-main/open.png | Bin 0 -> 123 bytes git-main/optional_8hpp_source.html | 371 +++ git-main/pages.html | 91 + git-main/plus.svg | 9 + git-main/plusd.svg | 9 + git-main/search/all_0.js | 4 + git-main/search/all_1.js | 6 + git-main/search/all_10.js | 6 + git-main/search/all_11.js | 4 + git-main/search/all_12.js | 5 + git-main/search/all_13.js | 5 + git-main/search/all_14.js | 4 + git-main/search/all_15.js | 4 + git-main/search/all_2.js | 5 + git-main/search/all_3.js | 5 + git-main/search/all_4.js | 18 + git-main/search/all_5.js | 6 + git-main/search/all_6.js | 4 + git-main/search/all_7.js | 8 + git-main/search/all_8.js | 5 + git-main/search/all_9.js | 5 + git-main/search/all_a.js | 8 + git-main/search/all_b.js | 6 + git-main/search/all_c.js | 14 + git-main/search/all_d.js | 4 + git-main/search/all_e.js | 6 + git-main/search/all_f.js | 7 + git-main/search/classes_0.js | 5 + git-main/search/classes_1.js | 11 + git-main/search/classes_2.js | 5 + git-main/search/classes_3.js | 4 + git-main/search/classes_4.js | 4 + git-main/search/classes_5.js | 4 + git-main/search/close.svg | 18 + git-main/search/defines_0.js | 6 + git-main/search/files_0.js | 4 + git-main/search/functions_0.js | 5 + git-main/search/functions_1.js | 4 + git-main/search/functions_2.js | 10 + git-main/search/functions_3.js | 4 + git-main/search/functions_4.js | 4 + git-main/search/functions_5.js | 4 + git-main/search/functions_6.js | 10 + git-main/search/functions_7.js | 5 + git-main/search/functions_8.js | 6 + git-main/search/functions_9.js | 4 + git-main/search/functions_a.js | 5 + git-main/search/functions_b.js | 4 + git-main/search/functions_c.js | 4 + git-main/search/mag.svg | 24 + git-main/search/mag_d.svg | 24 + git-main/search/mag_sel.svg | 31 + git-main/search/mag_seld.svg | 31 + git-main/search/namespaces_0.js | 4 + git-main/search/pages_0.js | 4 + git-main/search/pages_1.js | 4 + git-main/search/pages_2.js | 4 + git-main/search/related_0.js | 6 + git-main/search/search.css | 291 +++ git-main/search/search.js | 694 +++++ git-main/search/searchdata.js | 42 + git-main/search/typedefs_0.js | 4 + git-main/search/variables_0.js | 4 + git-main/search/variables_1.js | 4 + git-main/splitbar.png | Bin 0 -> 314 bytes git-main/splitbard.png | Bin 0 -> 282 bytes git-main/string__view_8hpp_source.html | 329 +++ ...lity_1_1bad__optional__access-members.html | 94 + ...uctmgutility_1_1bad__optional__access.html | 145 ++ ...ructmgutility_1_1bad__optional__access.png | Bin 0 -> 676 bytes ...mgutility_1_1detail_1_1enum__sequence.html | 108 + ...y_1_1detail_1_1enum__sequence__helper.html | 110 + ...00_01Min_00_01Next_8_8_8_01_4-members.html | 94 + ...0_01Min_00_01Min_00_01Next_8_8_8_01_4.html | 120 + ...ility_1_1detail_1_1enum__type-members.html | 95 + ...ructmgutility_1_1detail_1_1enum__type.html | 185 ++ ...ctmgutility_1_1detail_1_1has__bit__or.html | 114 + ...uctmgutility_1_1detail_1_1has__bit__or.png | Bin 0 -> 818 bytes ...2_03_7T_02_03_08_00_01void_07_08_08_4.html | 113 + ...02_03_7T_02_03_08_00_01void_07_08_08_4.png | Bin 0 -> 1035 bytes ...1_1detail_1_1is__scoped__enum-members.html | 94 + ...utility_1_1detail_1_1is__scoped__enum.html | 147 ++ ...tructmgutility_1_1enum__range-members.html | 95 + git-main/structmgutility_1_1enum__range.html | 120 + ...1_1enum__range_3_01color_01_4-members.html | 95 + ...utility_1_1enum__range_3_01color_01_4.html | 106 + ...um__range_3_01rgb__color_01_4-members.html | 95 + ...ty_1_1enum__range_3_01rgb__color_01_4.html | 106 + ...structmgutility_1_1nullopt__t-members.html | 94 + git-main/structmgutility_1_1nullopt__t.html | 148 ++ git-main/sync_off.png | Bin 0 -> 853 bytes git-main/sync_on.png | Bin 0 -> 845 bytes git-main/tab_a.png | Bin 0 -> 142 bytes git-main/tab_ad.png | Bin 0 -> 135 bytes git-main/tab_b.png | Bin 0 -> 169 bytes git-main/tab_bd.png | Bin 0 -> 173 bytes git-main/tab_h.png | Bin 0 -> 177 bytes git-main/tab_hd.png | Bin 0 -> 180 bytes git-main/tab_s.png | Bin 0 -> 184 bytes git-main/tab_sd.png | Bin 0 -> 188 bytes git-main/tabs.css | 1 + git-main/version_selector_handler.js | 20 + 167 files changed, 14448 insertions(+) create mode 100644 git-main/annotated.html create mode 100644 git-main/bc_s.png create mode 100644 git-main/bc_sd.png create mode 100644 git-main/classes.html create mode 100644 git-main/classmgutility_1_1basic__string__view-members.html create mode 100644 git-main/classmgutility_1_1basic__string__view.html create mode 100644 git-main/classmgutility_1_1enum__for__each-members.html create mode 100644 git-main/classmgutility_1_1enum__for__each.html create mode 100644 git-main/classmgutility_1_1optional-members.html create mode 100644 git-main/classmgutility_1_1optional.html create mode 100644 git-main/clipboard.js create mode 100644 git-main/closed.png create mode 100644 git-main/cookie.js create mode 100644 git-main/definitions_8hpp.html create mode 100644 git-main/definitions_8hpp_source.html create mode 100644 git-main/dir_0a228a9be9cda87819ec14c07e96fe30.html create mode 100644 git-main/dir_1904106e3967c35fb25a825ca0fb226d.html create mode 100644 git-main/dir_4fef79e7177ba769987a8da36c892c5f.html create mode 100644 git-main/dir_59425e443f801f1f2fd8bbe4959a3ccf.html create mode 100644 git-main/dir_6c89d1ed406002b4e6ebce07fb51a507.html create mode 100644 git-main/dir_9906c0397c90d50fffbda6b5916b0cc4.html create mode 100644 git-main/dir_9d7aa4e812851a81659bf8c9239b798a.html create mode 100644 git-main/dir_a46d1db4cfb32f5c0c9ab8e71dda6e10.html create mode 100644 git-main/dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html create mode 100644 git-main/dir_d44c64559bbebec7f509842c48db8b23.html create mode 100644 git-main/doc.svg create mode 100644 git-main/docd.svg create mode 100644 git-main/doxygen.css create mode 100644 git-main/doxygen.svg create mode 100644 git-main/doxygen_crawl.html create mode 100644 git-main/dynsections.js create mode 100644 git-main/enum__for__each_8hpp_source.html create mode 100644 git-main/enum__name_8hpp_source.html create mode 100644 git-main/enum__name__impl_8hpp_source.html create mode 100644 git-main/files.html create mode 100644 git-main/folderclosed.svg create mode 100644 git-main/folderclosedd.svg create mode 100644 git-main/folderopen.svg create mode 100644 git-main/folderopend.svg create mode 100644 git-main/functions.html create mode 100644 git-main/functions_func.html create mode 100644 git-main/functions_rela.html create mode 100644 git-main/functions_type.html create mode 100644 git-main/functions_vars.html create mode 100644 git-main/globals.html create mode 100644 git-main/globals_defs.html create mode 100644 git-main/hierarchy.html create mode 100644 git-main/index.html create mode 100644 git-main/jquery.js create mode 100644 git-main/md__2home_2runner_2work_2enum__name_2enum__name_2README.html create mode 100644 git-main/menu.js create mode 100644 git-main/menudata.js create mode 100644 git-main/meta_8hpp_source.html create mode 100644 git-main/minus.svg create mode 100644 git-main/minusd.svg create mode 100644 git-main/namespacemembers.html create mode 100644 git-main/namespacemembers_func.html create mode 100644 git-main/namespacemembers_vars.html create mode 100644 git-main/namespacemgutility.html create mode 100644 git-main/namespaces.html create mode 100644 git-main/nav_f.png create mode 100644 git-main/nav_fd.png create mode 100644 git-main/nav_g.png create mode 100644 git-main/nav_h.png create mode 100644 git-main/nav_hd.png create mode 100644 git-main/open.png create mode 100644 git-main/optional_8hpp_source.html create mode 100644 git-main/pages.html create mode 100644 git-main/plus.svg create mode 100644 git-main/plusd.svg create mode 100644 git-main/search/all_0.js create mode 100644 git-main/search/all_1.js create mode 100644 git-main/search/all_10.js create mode 100644 git-main/search/all_11.js create mode 100644 git-main/search/all_12.js create mode 100644 git-main/search/all_13.js create mode 100644 git-main/search/all_14.js create mode 100644 git-main/search/all_15.js create mode 100644 git-main/search/all_2.js create mode 100644 git-main/search/all_3.js create mode 100644 git-main/search/all_4.js create mode 100644 git-main/search/all_5.js create mode 100644 git-main/search/all_6.js create mode 100644 git-main/search/all_7.js create mode 100644 git-main/search/all_8.js create mode 100644 git-main/search/all_9.js create mode 100644 git-main/search/all_a.js create mode 100644 git-main/search/all_b.js create mode 100644 git-main/search/all_c.js create mode 100644 git-main/search/all_d.js create mode 100644 git-main/search/all_e.js create mode 100644 git-main/search/all_f.js create mode 100644 git-main/search/classes_0.js create mode 100644 git-main/search/classes_1.js create mode 100644 git-main/search/classes_2.js create mode 100644 git-main/search/classes_3.js create mode 100644 git-main/search/classes_4.js create mode 100644 git-main/search/classes_5.js create mode 100644 git-main/search/close.svg create mode 100644 git-main/search/defines_0.js create mode 100644 git-main/search/files_0.js create mode 100644 git-main/search/functions_0.js create mode 100644 git-main/search/functions_1.js create mode 100644 git-main/search/functions_2.js create mode 100644 git-main/search/functions_3.js create mode 100644 git-main/search/functions_4.js create mode 100644 git-main/search/functions_5.js create mode 100644 git-main/search/functions_6.js create mode 100644 git-main/search/functions_7.js create mode 100644 git-main/search/functions_8.js create mode 100644 git-main/search/functions_9.js create mode 100644 git-main/search/functions_a.js create mode 100644 git-main/search/functions_b.js create mode 100644 git-main/search/functions_c.js create mode 100644 git-main/search/mag.svg create mode 100644 git-main/search/mag_d.svg create mode 100644 git-main/search/mag_sel.svg create mode 100644 git-main/search/mag_seld.svg create mode 100644 git-main/search/namespaces_0.js create mode 100644 git-main/search/pages_0.js create mode 100644 git-main/search/pages_1.js create mode 100644 git-main/search/pages_2.js create mode 100644 git-main/search/related_0.js create mode 100644 git-main/search/search.css create mode 100644 git-main/search/search.js create mode 100644 git-main/search/searchdata.js create mode 100644 git-main/search/typedefs_0.js create mode 100644 git-main/search/variables_0.js create mode 100644 git-main/search/variables_1.js create mode 100644 git-main/splitbar.png create mode 100644 git-main/splitbard.png create mode 100644 git-main/string__view_8hpp_source.html create mode 100644 git-main/structmgutility_1_1bad__optional__access-members.html create mode 100644 git-main/structmgutility_1_1bad__optional__access.html create mode 100644 git-main/structmgutility_1_1bad__optional__access.png create mode 100644 git-main/structmgutility_1_1detail_1_1enum__sequence.html create mode 100644 git-main/structmgutility_1_1detail_1_1enum__sequence__helper.html create mode 100644 git-main/structmgutility_1_1detail_1_1enum__sequence__helper_3_01Enum_00_01Min_00_01Min_00_01Next_8_8_8_01_4-members.html create mode 100644 git-main/structmgutility_1_1detail_1_1enum__sequence__helper_3_01Enum_00_01Min_00_01Min_00_01Next_8_8_8_01_4.html create mode 100644 git-main/structmgutility_1_1detail_1_1enum__type-members.html create mode 100644 git-main/structmgutility_1_1detail_1_1enum__type.html create mode 100644 git-main/structmgutility_1_1detail_1_1has__bit__or.html create mode 100644 git-main/structmgutility_1_1detail_1_1has__bit__or.png create mode 100644 git-main/structmgutility_1_1detail_1_1has__bit__or_3_01T_00_01decltype_07_07T_02_03_7T_02_03_08_00_01void_07_08_08_4.html create mode 100644 git-main/structmgutility_1_1detail_1_1has__bit__or_3_01T_00_01decltype_07_07T_02_03_7T_02_03_08_00_01void_07_08_08_4.png create mode 100644 git-main/structmgutility_1_1detail_1_1is__scoped__enum-members.html create mode 100644 git-main/structmgutility_1_1detail_1_1is__scoped__enum.html create mode 100644 git-main/structmgutility_1_1enum__range-members.html create mode 100644 git-main/structmgutility_1_1enum__range.html create mode 100644 git-main/structmgutility_1_1enum__range_3_01color_01_4-members.html create mode 100644 git-main/structmgutility_1_1enum__range_3_01color_01_4.html create mode 100644 git-main/structmgutility_1_1enum__range_3_01rgb__color_01_4-members.html create mode 100644 git-main/structmgutility_1_1enum__range_3_01rgb__color_01_4.html create mode 100644 git-main/structmgutility_1_1nullopt__t-members.html create mode 100644 git-main/structmgutility_1_1nullopt__t.html create mode 100644 git-main/sync_off.png create mode 100644 git-main/sync_on.png create mode 100644 git-main/tab_a.png create mode 100644 git-main/tab_ad.png create mode 100644 git-main/tab_b.png create mode 100644 git-main/tab_bd.png create mode 100644 git-main/tab_h.png create mode 100644 git-main/tab_hd.png create mode 100644 git-main/tab_s.png create mode 100644 git-main/tab_sd.png create mode 100644 git-main/tabs.css create mode 100644 git-main/version_selector_handler.js diff --git a/git-main/annotated.html b/git-main/annotated.html new file mode 100644 index 0000000..a662d73 --- /dev/null +++ b/git-main/annotated.html @@ -0,0 +1,107 @@ + + + + + + + + + enum_name: Class List + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 123]
+ + + + + + + + + + + + + + + + + +
 NmgutilityChecks for MSVC compiler version
 Ndetail
 Cenum_sequenceRepresents a sequence of enumeration values
 Cenum_sequence_helperHelper for generating a sequence of enumeration values
 Cenum_sequence_helper< Enum, Min, Min, Next... >Specialization of enum_sequence_helper for the end of the sequence
 Cenum_type
 Chas_bit_orTrait to check if a type supports the bitwise OR operator
 Chas_bit_or< T, decltype((T{}|T{}), void())>Specialization of has_bit_or for types that support the bitwise OR operator
 Cis_scoped_enumTrait to check if a type is a scoped enumeration
 Cbad_optional_accessException thrown when accessing an empty optional
 Cbasic_string_viewA basic string view class template
 Cenum_for_eachA class template for iterating over enum values
 Cenum_rangeProvides the range for an enumeration type
 Cenum_range< color >
 Cenum_range< rgb_color >
 Cnullopt_tRepresents a null optional
 CoptionalA class template that provides optional (nullable) objects
+
+
+ + + + diff --git a/git-main/bc_s.png b/git-main/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/git-main/bc_sd.png b/git-main/bc_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..31ca888dc71049713b35c351933a8d0f36180bf1 GIT binary patch literal 635 zcmV->0)+jEP)Jwi0r1~gdSq#w{Bu1q z`craw(p2!hu$4C_$Oc3X(sI6e=9QSTwPt{G) z=htT&^~&c~L2~e{r5_5SYe7#Is-$ln>~Kd%$F#tC65?{LvQ}8O`A~RBB0N~`2M+waajO;5>3B&-viHGJeEK2TQOiPRa zfDKyqwMc4wfaEh4jt>H`nW_Zidwk@Bowp`}(VUaj-pSI(-1L>FJVsX}Yl9~JsqgsZ zUD9(rMwf23Gez6KPa|wwInZodP-2}9@fK0Ga_9{8SOjU&4l`pH4@qlQp83>>HT$xW zER^U>)MyV%t(Lu=`d=Y?{k1@}&r7ZGkFQ%z%N+sE9BtYjovzxyxCPxN6&@wLK{soQ zSmkj$aLI}miuE^p@~4}mg9OjDfGEkgY4~^XzLRUBB*O{+&vq<3v(E%+k_i%=`~j%{ Vj14gnt9}3g002ovPDHLkV1n!oC4m3{ literal 0 HcmV?d00001 diff --git a/git-main/classes.html b/git-main/classes.html new file mode 100644 index 0000000..3de292a --- /dev/null +++ b/git-main/classes.html @@ -0,0 +1,107 @@ + + + + + + + + + enum_name: Class Index + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Index
+
+ + + + + diff --git a/git-main/classmgutility_1_1basic__string__view-members.html b/git-main/classmgutility_1_1basic__string__view-members.html new file mode 100644 index 0000000..a8f2775 --- /dev/null +++ b/git-main/classmgutility_1_1basic__string__view-members.html @@ -0,0 +1,117 @@ + + + + + + + + + enum_name: Member List + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
mgutility::basic_string_view< Char > Member List
+
+
+ +

This is the complete list of members for mgutility::basic_string_view< Char >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
basic_string_view() noexceptmgutility::basic_string_view< Char >inline
basic_string_view(const Char *str) noexceptmgutility::basic_string_view< Char >inline
basic_string_view(const Char *str, size_t len) noexceptmgutility::basic_string_view< Char >inline
basic_string_view(const basic_string_view &other)mgutility::basic_string_view< Char >inline
basic_string_view(basic_string_view &&other) noexceptmgutility::basic_string_view< Char >inline
begin() const noexceptmgutility::basic_string_view< Char >inline
data() const noexceptmgutility::basic_string_view< Char >inline
empty() const noexceptmgutility::basic_string_view< Char >inline
end() const noexceptmgutility::basic_string_view< Char >inline
find(Char c, size_t pos=0) const noexceptmgutility::basic_string_view< Char >inline
npos (defined in mgutility::basic_string_view< Char >)mgutility::basic_string_view< Char >static
operator std::string()mgutility::basic_string_view< Char >inline
operator std::string() constmgutility::basic_string_view< Char >inline
operator!=mgutility::basic_string_view< Char >friend
operator!=mgutility::basic_string_view< Char >friend
operator<<mgutility::basic_string_view< Char >friend
operator=(const basic_string_view &other) noexceptmgutility::basic_string_view< Char >inline
operator=(basic_string_view &&other) noexceptmgutility::basic_string_view< Char >inline
operator==mgutility::basic_string_view< Char >friend
operator==mgutility::basic_string_view< Char >friend
operator[](size_t index) const noexceptmgutility::basic_string_view< Char >inline
rfind(Char c, size_t pos=npos) const noexceptmgutility::basic_string_view< Char >inline
size() const noexceptmgutility::basic_string_view< Char >inline
substr(size_t begin, size_t len=0U) const noexceptmgutility::basic_string_view< Char >inline
+ + + + diff --git a/git-main/classmgutility_1_1basic__string__view.html b/git-main/classmgutility_1_1basic__string__view.html new file mode 100644 index 0000000..b2251d0 --- /dev/null +++ b/git-main/classmgutility_1_1basic__string__view.html @@ -0,0 +1,989 @@ + + + + + + + + + enum_name: mgutility::basic_string_view< Char > Class Template Reference + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
mgutility::basic_string_view< Char > Class Template Reference
+
+
+ +

A basic string view class template. + More...

+ +

#include <string_view.hpp>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+constexpr basic_string_view () noexcept
 Default constructor.
 
constexpr basic_string_view (const Char *str) noexcept
 Constructs a basic_string_view from a C-string.
 
constexpr basic_string_view (const Char *str, size_t len) noexcept
 Constructs a basic_string_view from a C-string and length.
 
constexpr basic_string_view (const basic_string_view &other)
 Copy constructor.
 
constexpr basic_string_view (basic_string_view &&other) noexcept
 Move constructor.
 
MGUTILITY_CNSTXPR basic_string_view< Char > & operator= (const basic_string_view &other) noexcept
 Copy assignment operator.
 
MGUTILITY_CNSTXPR basic_string_view< Char > & operator= (basic_string_view &&other) noexcept
 Move assignment operator.
 
constexpr const Char operator[] (size_t index) const noexcept
 Accesses the character at the given index.
 
constexpr const Char * begin () const noexcept
 Returns an iterator to the beginning of the string.
 
constexpr const Char * end () const noexcept
 Returns an iterator to the end of the string.
 
constexpr bool empty () const noexcept
 Checks if the string is empty.
 
constexpr size_t size () const noexcept
 Returns the size of the string.
 
constexpr const Char * data () const noexcept
 Returns a pointer to the underlying data.
 
constexpr basic_string_view< Char > substr (size_t begin, size_t len=0U) const noexcept
 Returns a substring view.
 
constexpr size_t rfind (Char c, size_t pos=npos) const noexcept
 Finds the last occurrence of a character.
 
constexpr size_t find (Char c, size_t pos=0) const noexcept
 Finds the first occurrence of a character.
 
 operator std::string ()
 Converts the string view to an std::string.
 
 operator std::string () const
 Converts the string view to an std::string (const version).
 
+ + + +

+Static Public Attributes

+static constexpr auto npos = -1
 
+ + + + + + + + + + + + + + + + +

+Friends

constexpr friend bool operator== (basic_string_view< Char > lhs, basic_string_view< Char > rhs) noexcept
 Equality operator.
 
constexpr friend bool operator== (basic_string_view< Char > lhs, const Char *rhs) noexcept
 Equality operator.
 
constexpr friend bool operator!= (basic_string_view< Char > lhs, basic_string_view< Char > rhs) noexcept
 Inequality operator.
 
constexpr friend bool operator!= (basic_string_view< Char > lhs, const Char *rhs) noexcept
 Inequality operator.
 
std::ostream & operator<< (std::ostream &os, const basic_string_view< Char > &sv)
 Stream insertion operator.
 
+

Detailed Description

+
template<typename Char = char>
+class mgutility::basic_string_view< Char >

A basic string view class template.

+
Template Parameters
+ + +
CharThe character type, default is char.
+
+
+

Constructor & Destructor Documentation

+ +

◆ basic_string_view() [1/4]

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + +
constexpr mgutility::basic_string_view< Char >::basic_string_view (const Char * str)
+
+inlineconstexprnoexcept
+
+ +

Constructs a basic_string_view from a C-string.

+
Parameters
+ + +
strThe C-string.
+
+
+ +
+
+ +

◆ basic_string_view() [2/4]

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + + + + + +
constexpr mgutility::basic_string_view< Char >::basic_string_view (const Char * str,
size_t len )
+
+inlineconstexprnoexcept
+
+ +

Constructs a basic_string_view from a C-string and length.

+
Parameters
+ + + +
strThe C-string.
lenThe length of the string.
+
+
+ +
+
+ +

◆ basic_string_view() [3/4]

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + +
constexpr mgutility::basic_string_view< Char >::basic_string_view (const basic_string_view< Char > & other)
+
+inlineconstexpr
+
+ +

Copy constructor.

+
Parameters
+ + +
otherThe other basic_string_view to copy.
+
+
+ +
+
+ +

◆ basic_string_view() [4/4]

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + +
constexpr mgutility::basic_string_view< Char >::basic_string_view (basic_string_view< Char > && other)
+
+inlineconstexprnoexcept
+
+ +

Move constructor.

+
Parameters
+ + +
otherThe other basic_string_view to move.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ begin()

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + +
constexpr const Char * mgutility::basic_string_view< Char >::begin () const
+
+inlineconstexprnoexcept
+
+ +

Returns an iterator to the beginning of the string.

+
Returns
A pointer to the first character.
+ +
+
+ +

◆ data()

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + +
constexpr const Char * mgutility::basic_string_view< Char >::data () const
+
+inlineconstexprnoexcept
+
+ +

Returns a pointer to the underlying data.

+
Returns
A pointer to the data.
+ +
+
+ +

◆ empty()

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + +
constexpr bool mgutility::basic_string_view< Char >::empty () const
+
+inlineconstexprnoexcept
+
+ +

Checks if the string is empty.

+
Returns
True if the string is empty, otherwise false.
+ +
+
+ +

◆ end()

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + +
constexpr const Char * mgutility::basic_string_view< Char >::end () const
+
+inlineconstexprnoexcept
+
+ +

Returns an iterator to the end of the string.

+
Returns
A pointer to one past the last character.
+ +
+
+ +

◆ find()

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + + + + + +
constexpr size_t mgutility::basic_string_view< Char >::find (Char c,
size_t pos = 0 ) const
+
+inlineconstexprnoexcept
+
+ +

Finds the first occurrence of a character.

+
Parameters
+ + + +
cThe character to find.
posThe position to start from, default is 0.
+
+
+
Returns
The position of the character or npos if not found.
+ +
+
+ +

◆ operator std::string() [1/2]

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + +
mgutility::basic_string_view< Char >::operator std::string ()
+
+inline
+
+ +

Converts the string view to an std::string.

+
Returns
An std::string representing the same string.
+ +
+
+ +

◆ operator std::string() [2/2]

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + +
mgutility::basic_string_view< Char >::operator std::string () const
+
+inline
+
+ +

Converts the string view to an std::string (const version).

+
Returns
An std::string representing the same string.
+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR basic_string_view< Char > & mgutility::basic_string_view< Char >::operator= (basic_string_view< Char > && other)
+
+inlinenoexcept
+
+ +

Move assignment operator.

+
Parameters
+ + +
otherThe other basic_string_view to move.
+
+
+
Returns
A reference to this object.
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR basic_string_view< Char > & mgutility::basic_string_view< Char >::operator= (const basic_string_view< Char > & other)
+
+inlinenoexcept
+
+ +

Copy assignment operator.

+
Parameters
+ + +
otherThe other basic_string_view to copy.
+
+
+
Returns
A reference to this object.
+ +
+
+ +

◆ operator[]()

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + +
constexpr const Char mgutility::basic_string_view< Char >::operator[] (size_t index) const
+
+inlineconstexprnoexcept
+
+ +

Accesses the character at the given index.

+
Parameters
+ + +
indexThe index.
+
+
+
Returns
The character at the index.
+ +
+
+ +

◆ rfind()

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + + + + + +
constexpr size_t mgutility::basic_string_view< Char >::rfind (Char c,
size_t pos = npos ) const
+
+inlineconstexprnoexcept
+
+ +

Finds the last occurrence of a character.

+
Parameters
+ + + +
cThe character to find.
posThe position to start from, default is npos.
+
+
+
Returns
The position of the character or npos if not found.
+ +
+
+ +

◆ size()

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + +
constexpr size_t mgutility::basic_string_view< Char >::size () const
+
+inlineconstexprnoexcept
+
+ +

Returns the size of the string.

+
Returns
The size of the string.
+ +
+
+ +

◆ substr()

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + + + + + +
constexpr basic_string_view< Char > mgutility::basic_string_view< Char >::substr (size_t begin,
size_t len = 0U ) const
+
+inlineconstexprnoexcept
+
+ +

Returns a substring view.

+
Parameters
+ + + +
beginThe starting position.
lenThe length of the substring.
+
+
+
Returns
A basic_string_view representing the substring.
+ +
+
+

Friends And Related Symbol Documentation

+ +

◆ operator!= [1/2]

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + + + + + +
constexpr friend bool operator!= (basic_string_view< Char > lhs,
basic_string_view< Char > rhs )
+
+friend
+
+ +

Inequality operator.

+
Parameters
+ + + +
lhsThe left-hand side basic_string_view.
rhsThe right-hand side basic_string_view.
+
+
+
Returns
True if the strings are not equal, otherwise false.
+ +
+
+ +

◆ operator!= [2/2]

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + + + + + +
constexpr friend bool operator!= (basic_string_view< Char > lhs,
const Char * rhs )
+
+friend
+
+ +

Inequality operator.

+
Parameters
+ + + +
lhsThe left-hand side basic_string_view.
rhsThe right-hand side C-string.
+
+
+
Returns
True if the strings are not equal, otherwise false.
+ +
+
+ +

◆ operator<<

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + + + + + +
std::ostream & operator<< (std::ostream & os,
const basic_string_view< Char > & sv )
+
+friend
+
+ +

Stream insertion operator.

+
Parameters
+ + + +
osThe output stream.
svThe basic_string_view.
+
+
+
Returns
A reference to the output stream.
+ +
+
+ +

◆ operator== [1/2]

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + + + + + +
constexpr friend bool operator== (basic_string_view< Char > lhs,
basic_string_view< Char > rhs )
+
+friend
+
+ +

Equality operator.

+
Parameters
+ + + +
lhsThe left-hand side basic_string_view.
rhsThe right-hand side basic_string_view.
+
+
+
Returns
True if the strings are equal, otherwise false.
+ +
+
+ +

◆ operator== [2/2]

+ +
+
+
+template<typename Char = char>
+ + + + + +
+ + + + + + + + + + + +
constexpr friend bool operator== (basic_string_view< Char > lhs,
const Char * rhs )
+
+friend
+
+ +

Equality operator.

+
Parameters
+ + + +
lhsThe left-hand side basic_string_view.
rhsThe right-hand side C-string.
+
+
+
Returns
True if the strings are equal, otherwise false.
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/enum_name/enum_name/include/mgutility/std/string_view.hpp
  • +
+
+ + + + diff --git a/git-main/classmgutility_1_1enum__for__each-members.html b/git-main/classmgutility_1_1enum__for__each-members.html new file mode 100644 index 0000000..55ae2e8 --- /dev/null +++ b/git-main/classmgutility_1_1enum__for__each-members.html @@ -0,0 +1,97 @@ + + + + + + + + + enum_name: Member List + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
mgutility::enum_for_each< Enum > Member List
+
+
+ +

This is the complete list of members for mgutility::enum_for_each< Enum >, including all inherited members.

+ + + + + +
begin() -> enum_iter &mgutility::enum_for_each< Enum >inline
end() -> enum_iter &mgutility::enum_for_each< Enum >inline
enum_for_each()=defaultmgutility::enum_for_each< Enum >
size() -> std::size_tmgutility::enum_for_each< Enum >inline
+ + + + diff --git a/git-main/classmgutility_1_1enum__for__each.html b/git-main/classmgutility_1_1enum__for__each.html new file mode 100644 index 0000000..5d499d9 --- /dev/null +++ b/git-main/classmgutility_1_1enum__for__each.html @@ -0,0 +1,219 @@ + + + + + + + + + enum_name: mgutility::enum_for_each< Enum > Class Template Reference + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
mgutility::enum_for_each< Enum > Class Template Reference
+
+
+ +

A class template for iterating over enum values. + More...

+ +

#include <enum_for_each.hpp>

+ + + + + + + + + + + + + + +

+Public Member Functions

enum_for_each ()=default
 Default constructor.
 
auto begin () -> enum_iter &
 Returns an iterator to the beginning of the enum range.
 
auto end () -> enum_iter &
 Returns an iterator to the end of the enum range.
 
auto size () -> std::size_t
 Returns the size of the enum range.
 
+

Detailed Description

+
template<typename Enum>
+class mgutility::enum_for_each< Enum >

A class template for iterating over enum values.

+
Template Parameters
+ + +
EnumThe enum type.
+
+
+

Member Function Documentation

+ +

◆ begin()

+ +
+
+
+template<typename Enum >
+ + + + + +
+ + + + + + + +
auto mgutility::enum_for_each< Enum >::begin () -> enum_iter &
+
+inline
+
+ +

Returns an iterator to the beginning of the enum range.

+
Returns
A reference to the beginning iterator.
+ +
+
+ +

◆ end()

+ +
+
+
+template<typename Enum >
+ + + + + +
+ + + + + + + +
auto mgutility::enum_for_each< Enum >::end () -> enum_iter &
+
+inline
+
+ +

Returns an iterator to the end of the enum range.

+
Returns
A reference to the end iterator.
+ +
+
+ +

◆ size()

+ +
+
+
+template<typename Enum >
+ + + + + +
+ + + + + + + +
auto mgutility::enum_for_each< Enum >::size () -> std::size_t +
+
+inline
+
+ +

Returns the size of the enum range.

+
Returns
The size of the enum range.
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/enum_name/enum_name/include/mgutility/reflection/detail/enum_for_each.hpp
  • +
+
+ + + + diff --git a/git-main/classmgutility_1_1optional-members.html b/git-main/classmgutility_1_1optional-members.html new file mode 100644 index 0000000..62ff0de --- /dev/null +++ b/git-main/classmgutility_1_1optional-members.html @@ -0,0 +1,119 @@ + + + + + + + + + enum_name: Member List + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
mgutility::optional< T > Member List
+
+
+ +

This is the complete list of members for mgutility::optional< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
dummy_ (defined in mgutility::optional< T >)mgutility::optional< T >
emplace(T value)mgutility::optional< T >inline
emplace(Args &&...args)mgutility::optional< T >inline
has_value() constmgutility::optional< T >inline
operator bool()mgutility::optional< T >inline
operator*()mgutility::optional< T >inline
operator*() constmgutility::optional< T >inline
operator=(const optional &other)mgutility::optional< T >inline
operator=(optional &&other)mgutility::optional< T >inline
optional(nullopt_t &)mgutility::optional< T >inline
optional()mgutility::optional< T >inline
optional(Args &&...args)mgutility::optional< T >inline
optional(T &&value)mgutility::optional< T >inline
optional(const optional &other)mgutility::optional< T >inline
optional(optional &&other)mgutility::optional< T >inline
reset()mgutility::optional< T >inline
reset()mgutility::optional< T >inline
swap(optional &&other)mgutility::optional< T >inline
value()mgutility::optional< T >inline
value() constmgutility::optional< T >inline
value_ (defined in mgutility::optional< T >)mgutility::optional< T >
value_or(T &&value)mgutility::optional< T >inline
value_or(T &&value) constmgutility::optional< T >inline
value_or(const T &value)mgutility::optional< T >inline
value_or(const T &value) constmgutility::optional< T >inline
~optional()mgutility::optional< T >inline
+ + + + diff --git a/git-main/classmgutility_1_1optional.html b/git-main/classmgutility_1_1optional.html new file mode 100644 index 0000000..fa33c47 --- /dev/null +++ b/git-main/classmgutility_1_1optional.html @@ -0,0 +1,866 @@ + + + + + + + + + enum_name: mgutility::optional< T > Class Template Reference + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
mgutility::optional< T > Class Template Reference
+
+
+ +

A class template that provides optional (nullable) objects. + More...

+ +

#include <optional.hpp>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+MGUTILITY_CNSTXPR optional (nullopt_t &)
 Constructs an empty optional.
 
+MGUTILITY_CNSTXPR optional ()
 Constructs an empty optional.
 
template<typename... Args>
MGUTILITY_CNSTXPR optional (Args &&...args)
 Constructs an optional with a value.
 
MGUTILITY_CNSTXPR optional (T &&value)
 Constructs an optional with a value.
 
MGUTILITY_CNSTXPR optional (const optional &other)
 Copy constructor.
 
MGUTILITY_CNSTXPR optional (optional &&other)
 Move constructor.
 
~optional ()
 Destructor.
 
MGUTILITY_CNSTXPR optionaloperator= (const optional &other)
 Copy assignment operator.
 
MGUTILITY_CNSTXPR optionaloperator= (optional &&other)
 Move assignment operator.
 
MGUTILITY_CNSTXPR void swap (optional &&other)
 Swaps the contents of this optional with another.
 
MGUTILITY_CNSTXPR T & operator* ()
 Dereferences the stored value.
 
MGUTILITY_CNSTXPR T & operator* () const
 Dereferences the stored value (const version).
 
MGUTILITY_CNSTXPR T & value ()
 Accesses the stored value.
 
MGUTILITY_CNSTXPR T & value () const
 Accesses the stored value (const version).
 
MGUTILITY_CNSTXPR T value_or (T &&value)
 Returns the stored value or a default value if empty.
 
MGUTILITY_CNSTXPR T value_or (T &&value) const
 Returns the stored value or a default value if empty (const version).
 
MGUTILITY_CNSTXPR T value_or (const T &value)
 Returns the stored value or a default value if empty.
 
MGUTILITY_CNSTXPR T value_or (const T &value) const
 Returns the stored value or a default value if empty (const version).
 
MGUTILITY_CNSTXPR void emplace (T value)
 Constructs the value in-place.
 
template<typename... Args>
MGUTILITY_CNSTXPR void emplace (Args &&...args)
 Constructs the value in-place with arguments.
 
MGUTILITY_CNSTXPR bool has_value () const
 Checks if the optional has a value.
 
+template<typename U = T, detail::enable_if_t<!std::is_destructible< U >::value, bool > = true>
MGUTILITY_CNSTXPR void reset ()
 Resets the optional, making it empty.
 
+template<typename U = T, detail::enable_if_t< std::is_destructible< T >::value, bool > = true>
MGUTILITY_CNSTXPR void reset ()
 Resets the optional, making it empty.
 
MGUTILITY_CNSTXPR operator bool ()
 Checks if the optional has a value.
 
+

Detailed Description

+
template<typename T>
+class mgutility::optional< T >

A class template that provides optional (nullable) objects.

+
Template Parameters
+ + +
TThe type of the value.
+
+
+

Constructor & Destructor Documentation

+ +

◆ optional() [1/4]

+ +
+
+
+template<typename T >
+
+template<typename... Args>
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR mgutility::optional< T >::optional (Args &&... args)
+
+inline
+
+ +

Constructs an optional with a value.

+
Template Parameters
+ + +
ArgsThe types of the arguments.
+
+
+
Parameters
+ + +
argsThe arguments to construct the value.
+
+
+ +
+
+ +

◆ optional() [2/4]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR mgutility::optional< T >::optional (T && value)
+
+inline
+
+ +

Constructs an optional with a value.

+
Parameters
+ + +
valueThe value to initialize with.
+
+
+ +
+
+ +

◆ optional() [3/4]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR mgutility::optional< T >::optional (const optional< T > & other)
+
+inline
+
+ +

Copy constructor.

+
Parameters
+ + +
otherThe other optional to copy.
+
+
+ +
+
+ +

◆ optional() [4/4]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR mgutility::optional< T >::optional (optional< T > && other)
+
+inline
+
+ +

Move constructor.

+
Parameters
+ + +
otherThe other optional to move.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ emplace() [1/2]

+ +
+
+
+template<typename T >
+
+template<typename... Args>
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR void mgutility::optional< T >::emplace (Args &&... args)
+
+inline
+
+ +

Constructs the value in-place with arguments.

+
Template Parameters
+ + +
ArgsThe types of the arguments.
+
+
+
Parameters
+ + +
argsThe arguments to construct the value.
+
+
+ +
+
+ +

◆ emplace() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR void mgutility::optional< T >::emplace (T value)
+
+inline
+
+ +

Constructs the value in-place.

+
Parameters
+ + +
valueThe value to emplace.
+
+
+ +
+
+ +

◆ has_value()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR bool mgutility::optional< T >::has_value () const
+
+inline
+
+ +

Checks if the optional has a value.

+
Returns
True if the optional has a value, otherwise false.
+ +
+
+ +

◆ operator bool()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR mgutility::optional< T >::operator bool ()
+
+inline
+
+ +

Checks if the optional has a value.

+
Returns
True if the optional has a value, otherwise false.
+ +
+
+ +

◆ operator*() [1/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR T & mgutility::optional< T >::operator* ()
+
+inline
+
+ +

Dereferences the stored value.

+
Returns
A reference to the stored value.
+ +
+
+ +

◆ operator*() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR T & mgutility::optional< T >::operator* () const
+
+inline
+
+ +

Dereferences the stored value (const version).

+
Returns
A reference to the stored value.
+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR optional & mgutility::optional< T >::operator= (const optional< T > & other)
+
+inline
+
+ +

Copy assignment operator.

+
Parameters
+ + +
otherThe other optional to copy.
+
+
+
Returns
A reference to this optional.
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR optional & mgutility::optional< T >::operator= (optional< T > && other)
+
+inline
+
+ +

Move assignment operator.

+
Parameters
+ + +
otherThe other optional to move.
+
+
+
Returns
A reference to this optional.
+ +
+
+ +

◆ swap()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR void mgutility::optional< T >::swap (optional< T > && other)
+
+inline
+
+ +

Swaps the contents of this optional with another.

+
Parameters
+ + +
otherThe other optional to swap with.
+
+
+ +
+
+ +

◆ value() [1/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR T & mgutility::optional< T >::value ()
+
+inline
+
+ +

Accesses the stored value.

+
Returns
A reference to the stored value.
+
Exceptions
+ + +
bad_optional_accessif the optional has no value.
+
+
+ +
+
+ +

◆ value() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR T & mgutility::optional< T >::value () const
+
+inline
+
+ +

Accesses the stored value (const version).

+
Returns
A reference to the stored value.
+
Exceptions
+ + +
bad_optional_accessif the optional has no value.
+
+
+ +
+
+ +

◆ value_or() [1/4]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR T mgutility::optional< T >::value_or (const T & value)
+
+inline
+
+ +

Returns the stored value or a default value if empty.

+
Parameters
+ + +
valueThe default value to return if empty.
+
+
+
Returns
The stored value or the default value.
+ +
+
+ +

◆ value_or() [2/4]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR T mgutility::optional< T >::value_or (const T & value) const
+
+inline
+
+ +

Returns the stored value or a default value if empty (const version).

+
Parameters
+ + +
valueThe default value to return if empty.
+
+
+
Returns
The stored value or the default value.
+ +
+
+ +

◆ value_or() [3/4]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR T mgutility::optional< T >::value_or (T && value)
+
+inline
+
+ +

Returns the stored value or a default value if empty.

+
Parameters
+ + +
valueThe default value to return if empty.
+
+
+
Returns
The stored value or the default value.
+ +
+
+ +

◆ value_or() [4/4]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
MGUTILITY_CNSTXPR T mgutility::optional< T >::value_or (T && value) const
+
+inline
+
+ +

Returns the stored value or a default value if empty (const version).

+
Parameters
+ + +
valueThe default value to return if empty.
+
+
+
Returns
The stored value or the default value.
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/enum_name/enum_name/include/mgutility/std/optional.hpp
  • +
+
+ + + + diff --git a/git-main/clipboard.js b/git-main/clipboard.js new file mode 100644 index 0000000..42c1fb0 --- /dev/null +++ b/git-main/clipboard.js @@ -0,0 +1,61 @@ +/** + +The code below is based on the Doxygen Awesome project, see +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2022 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +let clipboard_title = "Copy to clipboard" +let clipboard_icon = `` +let clipboard_successIcon = `` +let clipboard_successDuration = 1000 + +$(function() { + if(navigator.clipboard) { + const fragments = document.getElementsByClassName("fragment") + for(const fragment of fragments) { + const clipboard_div = document.createElement("div") + clipboard_div.classList.add("clipboard") + clipboard_div.innerHTML = clipboard_icon + clipboard_div.title = clipboard_title + $(clipboard_div).click(function() { + const content = this.parentNode.cloneNode(true) + // filter out line number and folded fragments from file listings + content.querySelectorAll(".lineno, .ttc, .foldclosed").forEach((node) => { node.remove() }) + let text = content.textContent + // remove trailing newlines and trailing spaces from empty lines + text = text.replace(/^\s*\n/gm,'\n').replace(/\n*$/,'') + navigator.clipboard.writeText(text); + this.classList.add("success") + this.innerHTML = clipboard_successIcon + window.setTimeout(() => { // switch back to normal icon after timeout + this.classList.remove("success") + this.innerHTML = clipboard_icon + }, clipboard_successDuration); + }) + fragment.insertBefore(clipboard_div, fragment.firstChild) + } + } +}) diff --git a/git-main/closed.png b/git-main/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/git-main/cookie.js b/git-main/cookie.js new file mode 100644 index 0000000..53ad21d --- /dev/null +++ b/git-main/cookie.js @@ -0,0 +1,58 @@ +/*! + Cookie helper functions + Copyright (c) 2023 Dimitri van Heesch + Released under MIT license. +*/ +let Cookie = { + cookie_namespace: 'doxygen_', + + readSetting(cookie,defVal) { + if (window.chrome) { + const val = localStorage.getItem(this.cookie_namespace+cookie) || + sessionStorage.getItem(this.cookie_namespace+cookie); + if (val) return val; + } else { + let myCookie = this.cookie_namespace+cookie+"="; + if (document.cookie) { + const index = document.cookie.indexOf(myCookie); + if (index != -1) { + const valStart = index + myCookie.length; + let valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + return document.cookie.substring(valStart, valEnd); + } + } + } + return defVal; + }, + + writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete + if (window.chrome) { + if (days==0) { + sessionStorage.setItem(this.cookie_namespace+cookie,val); + } else { + localStorage.setItem(this.cookie_namespace+cookie,val); + } + } else { + let date = new Date(); + date.setTime(date.getTime()+(days*24*60*60*1000)); + const expiration = days!=0 ? "expires="+date.toGMTString()+";" : ""; + document.cookie = this.cookie_namespace + cookie + "=" + + val + "; SameSite=Lax;" + expiration + "path=/"; + } + }, + + eraseSetting(cookie) { + if (window.chrome) { + if (localStorage.getItem(this.cookie_namespace+cookie)) { + localStorage.removeItem(this.cookie_namespace+cookie); + } else if (sessionStorage.getItem(this.cookie_namespace+cookie)) { + sessionStorage.removeItem(this.cookie_namespace+cookie); + } + } else { + this.writeSetting(cookie,'',-1); + } + }, +} diff --git a/git-main/definitions_8hpp.html b/git-main/definitions_8hpp.html new file mode 100644 index 0000000..9c0d69a --- /dev/null +++ b/git-main/definitions_8hpp.html @@ -0,0 +1,166 @@ + + + + + + + + + enum_name: /home/runner/work/enum_name/enum_name/include/mgutility/_common/definitions.hpp File Reference + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
definitions.hpp File Reference
+
+
+ +

Defines macros for compiler and standard support detection. +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Macros

#define MGUTILITY_CPLUSPLUS   __cplusplus
 Defines the MGUTILITY_CPLUSPLUS macro for MSVC and other compilers.
 
#define MGUTILITY_CNSTXPR_CLANG_WA
 Defines the MGUTILITY_CNSTXPR macro based on the C++ standard.
 
#define MGUTILITY_CNSTEVL
 Defines the MGUTILITY_CNSTEVL macro based on the C++ standard.
 
+

Detailed Description

+

Defines macros for compiler and standard support detection.

+

Macro Definition Documentation

+ +

◆ MGUTILITY_CNSTEVL

+ +
+
+ + + + +
#define MGUTILITY_CNSTEVL
+
+ +

Defines the MGUTILITY_CNSTEVL macro based on the C++ standard.

+

If the C++ standard is newer than C++17, MGUTILITY_CNSTEVL is defined as consteval. Otherwise, it is defined as empty.

+ +
+
+ +

◆ MGUTILITY_CNSTXPR_CLANG_WA

+ +
+
+ + + + +
#define MGUTILITY_CNSTXPR_CLANG_WA
+
+ +

Defines the MGUTILITY_CNSTXPR macro based on the C++ standard.

+

If the C++ standard is C++11, MGUTILITY_CNSTXPR is defined as empty. If the C++ standard is newer than C++11, MGUTILITY_CNSTXPR is defined as constexpr. If the C++ standard is older than C++11, an error is raised.

+

Defines the MGUTILITY_CNSTXPR_CLANG_WA macro based on the C++ standard.

+

If the C++ standard is newer than C++17 and the compiler is not Clang, MGUTILITY_CNSTXPR_CLANG_WA is defined as constexpr. Otherwise, it is defined as empty.

+ +
+
+ +

◆ MGUTILITY_CPLUSPLUS

+ +
+
+ + + + +
#define MGUTILITY_CPLUSPLUS   __cplusplus
+
+ +

Defines the MGUTILITY_CPLUSPLUS macro for MSVC and other compilers.

+

For MSVC, it uses _MSVC_LANG. For other compilers, it uses __cplusplus.

+ +
+
+
+ + + + diff --git a/git-main/definitions_8hpp_source.html b/git-main/definitions_8hpp_source.html new file mode 100644 index 0000000..918e2f1 --- /dev/null +++ b/git-main/definitions_8hpp_source.html @@ -0,0 +1,150 @@ + + + + + + + + + enum_name: /home/runner/work/enum_name/enum_name/include/mgutility/_common/definitions.hpp Source File + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
definitions.hpp
+
+
+Go to the documentation of this file.
1/*
+
2MIT License
+
3
+
4Copyright (c) 2024 mguludag
+
5
+
6Permission is hereby granted, free of charge, to any person obtaining a copy
+
7of this software and associated documentation files (the "Software"), to deal
+
8in the Software without restriction, including without limitation the rights
+
9to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+
10copies of the Software, and to permit persons to whom the Software is
+
11furnished to do so, subject to the following conditions:
+
12
+
13The above copyright notice and this permission notice shall be included in all
+
14copies or substantial portions of the Software.
+
15
+
16THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+
17IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+
18FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+
19AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+
20LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+
21OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+
22SOFTWARE.
+
23*/
+
24
+
25
+
26#ifndef MGUTILITY_COMMON_DEFINITIONS_HPP
+
27#define MGUTILITY_COMMON_DEFINITIONS_HPP
+
28
+
39#ifdef _MSC_VER
+
40#define MGUTILITY_CPLUSPLUS _MSVC_LANG
+
41#else
+
42#define MGUTILITY_CPLUSPLUS __cplusplus
+
43#endif
+
44
+
52#if MGUTILITY_CPLUSPLUS == 201103L
+
53#define MGUTILITY_CNSTXPR
+
54#elif MGUTILITY_CPLUSPLUS > 201103L
+
55#define MGUTILITY_CNSTXPR constexpr
+
56#elif MGUTILITY_CPLUSPLUS < 201103L
+
57#error "Standards older than C++11 is not supported!"
+
58#endif
+
59
+
66#if MGUTILITY_CPLUSPLUS > 201703L
+
67#define MGUTILITY_CNSTXPR_CLANG_WA constexpr
+
68#else
+
69#define MGUTILITY_CNSTXPR_CLANG_WA
+
70#endif
+
71
+
78#if MGUTILITY_CPLUSPLUS > 201703L
+
79#define MGUTILITY_CNSTEVL consteval
+
80#else
+
81#define MGUTILITY_CNSTEVL
+
82#endif
+
83
+
84#endif // MGUTILITY_COMMON_DEFINITIONS_HPP
+
+ + + + diff --git a/git-main/dir_0a228a9be9cda87819ec14c07e96fe30.html b/git-main/dir_0a228a9be9cda87819ec14c07e96fe30.html new file mode 100644 index 0000000..c68421c --- /dev/null +++ b/git-main/dir_0a228a9be9cda87819ec14c07e96fe30.html @@ -0,0 +1,97 @@ + + + + + + + + + enum_name: /home/runner/work/enum_name/enum_name/include/mgutility/_common Directory Reference + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
_common Directory Reference
+
+
+ + + + + +

+Files

 definitions.hpp
 Defines macros for compiler and standard support detection.
 
+
+ + + + diff --git a/git-main/dir_1904106e3967c35fb25a825ca0fb226d.html b/git-main/dir_1904106e3967c35fb25a825ca0fb226d.html new file mode 100644 index 0000000..24d5dc5 --- /dev/null +++ b/git-main/dir_1904106e3967c35fb25a825ca0fb226d.html @@ -0,0 +1,98 @@ + + + + + + + + + enum_name: /home/runner/work/enum_name/enum_name/include/mgutility/std Directory Reference + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
std Directory Reference
+
+
+ + + + + + +

+Files

 optional.hpp
 
 string_view.hpp
 
+
+ + + + diff --git a/git-main/dir_4fef79e7177ba769987a8da36c892c5f.html b/git-main/dir_4fef79e7177ba769987a8da36c892c5f.html new file mode 100644 index 0000000..92363e8 --- /dev/null +++ b/git-main/dir_4fef79e7177ba769987a8da36c892c5f.html @@ -0,0 +1,90 @@ + + + + + + + + + enum_name: /home/runner/work/enum_name/enum_name/build Directory Reference + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
build Directory Reference
+
+
+
+ + + + diff --git a/git-main/dir_59425e443f801f1f2fd8bbe4959a3ccf.html b/git-main/dir_59425e443f801f1f2fd8bbe4959a3ccf.html new file mode 100644 index 0000000..4d8c1bd --- /dev/null +++ b/git-main/dir_59425e443f801f1f2fd8bbe4959a3ccf.html @@ -0,0 +1,90 @@ + + + + + + + + + enum_name: /home/runner/work/enum_name/enum_name/tests Directory Reference + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tests Directory Reference
+
+
+
+ + + + diff --git a/git-main/dir_6c89d1ed406002b4e6ebce07fb51a507.html b/git-main/dir_6c89d1ed406002b4e6ebce07fb51a507.html new file mode 100644 index 0000000..f727ffd --- /dev/null +++ b/git-main/dir_6c89d1ed406002b4e6ebce07fb51a507.html @@ -0,0 +1,90 @@ + + + + + + + + + enum_name: /home/runner/work/enum_name/enum_name/build/doc Directory Reference + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
doc Directory Reference
+
+
+
+ + + + diff --git a/git-main/dir_9906c0397c90d50fffbda6b5916b0cc4.html b/git-main/dir_9906c0397c90d50fffbda6b5916b0cc4.html new file mode 100644 index 0000000..1c27d27 --- /dev/null +++ b/git-main/dir_9906c0397c90d50fffbda6b5916b0cc4.html @@ -0,0 +1,100 @@ + + + + + + + + + enum_name: /home/runner/work/enum_name/enum_name/include/mgutility Directory Reference + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
mgutility Directory Reference
+
+
+ + + + + + + + +

+Directories

 _common
 
 reflection
 
 std
 
+
+ + + + diff --git a/git-main/dir_9d7aa4e812851a81659bf8c9239b798a.html b/git-main/dir_9d7aa4e812851a81659bf8c9239b798a.html new file mode 100644 index 0000000..b21cec3 --- /dev/null +++ b/git-main/dir_9d7aa4e812851a81659bf8c9239b798a.html @@ -0,0 +1,101 @@ + + + + + + + + + enum_name: /home/runner/work/enum_name/enum_name/include/mgutility/reflection Directory Reference + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
reflection Directory Reference
+
+
+ + + + +

+Directories

 detail
 
+ + + +

+Files

 enum_name.hpp
 
+
+ + + + diff --git a/git-main/dir_a46d1db4cfb32f5c0c9ab8e71dda6e10.html b/git-main/dir_a46d1db4cfb32f5c0c9ab8e71dda6e10.html new file mode 100644 index 0000000..d5345c9 --- /dev/null +++ b/git-main/dir_a46d1db4cfb32f5c0c9ab8e71dda6e10.html @@ -0,0 +1,100 @@ + + + + + + + + + enum_name: /home/runner/work/enum_name/enum_name/include/mgutility/reflection/detail Directory Reference + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
detail Directory Reference
+
+
+ + + + + + + + +

+Files

 enum_for_each.hpp
 
 enum_name_impl.hpp
 
 meta.hpp
 
+
+ + + + diff --git a/git-main/dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html b/git-main/dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html new file mode 100644 index 0000000..2a5dd32 --- /dev/null +++ b/git-main/dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html @@ -0,0 +1,90 @@ + + + + + + + + + enum_name: /home/runner/work/enum_name/enum_name/example Directory Reference + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
example Directory Reference
+
+
+
+ + + + diff --git a/git-main/dir_d44c64559bbebec7f509842c48db8b23.html b/git-main/dir_d44c64559bbebec7f509842c48db8b23.html new file mode 100644 index 0000000..ff61cc5 --- /dev/null +++ b/git-main/dir_d44c64559bbebec7f509842c48db8b23.html @@ -0,0 +1,90 @@ + + + + + + + + + enum_name: /home/runner/work/enum_name/enum_name/include Directory Reference + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
include Directory Reference
+
+
+
+ + + + diff --git a/git-main/doc.svg b/git-main/doc.svg new file mode 100644 index 0000000..0b928a5 --- /dev/null +++ b/git-main/doc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/git-main/docd.svg b/git-main/docd.svg new file mode 100644 index 0000000..ac18b27 --- /dev/null +++ b/git-main/docd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/git-main/doxygen.css b/git-main/doxygen.css new file mode 100644 index 0000000..7b7d851 --- /dev/null +++ b/git-main/doxygen.css @@ -0,0 +1,2225 @@ +/* The standard CSS for doxygen 1.10.0*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #3D578C; +--page-visited-link-color: #4665A2; + +/* index */ +--index-odd-item-bg-color: #F8F9FC; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F9FAFC; +--header-separator-color: #C4CFE5; +--header-gradient-image: url('nav_h.png'); +--group-header-separator-color: #879ECB; +--group-header-color: #354C7B; +--inherit-header-color: gray; + +--footer-foreground-color: #2A3D61; +--footer-logo-width: 104px; +--citation-label-color: #334975; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #5373B4; +--directory-separator-color: #9CAFD4; +--separator-color: #4A6AAA; + +--blockquote-background-color: #F7F8FB; +--blockquote-border-color: #9CAFD4; + +--scrollbar-thumb-color: #9CAFD4; +--scrollbar-background-color: #F9FAFC; + +--icon-background-color: #728DC1; +--icon-foreground-color: white; +--icon-doc-image: url('doc.svg'); +--icon-folder-open-image: url('folderopen.svg'); +--icon-folder-closed-image: url('folderclosed.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #F9FAFC; +--memdecl-separator-color: #DEE4F0; +--memdecl-foreground-color: #555; +--memdecl-template-color: #4665A2; + +/* detailed member list */ +--memdef-border-color: #A8B8D9; +--memdef-title-background-color: #E2E8F2; +--memdef-title-gradient-image: url('nav_f.png'); +--memdef-proto-background-color: #DFE5F1; +--memdef-proto-text-color: #253555; +--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--memdef-doc-background-color: white; +--memdef-param-name-color: #602020; +--memdef-template-color: #4665A2; + +/* tables */ +--table-cell-border-color: #2D4068; +--table-header-background-color: #374F7F; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #728DC1; +--label-left-top-border-color: #5373B4; +--label-right-bottom-border-color: #C4CFE5; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F9FAFC; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_b.png'); +--nav-gradient-hover-image: url('tab_h.png'); +--nav-gradient-active-image: url('tab_a.png'); +--nav-gradient-active-image-parent: url("../tab_a.png"); +--nav-separator-image: url('tab_s.png'); +--nav-breadcrumb-image: url('bc_s.png'); +--nav-breadcrumb-border-color: #C2CDE4; +--nav-splitbar-image: url('splitbar.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #283A5D; +--nav-text-hover-color: white; +--nav-text-active-color: white; +--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #364D7C; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.5); +--nav-arrow-color: #9CAFD4; +--nav-arrow-selected-color: #9CAFD4; + +/* table of contents */ +--toc-background-color: #F4F6FA; +--toc-border-color: #D8DFEE; +--toc-header-color: #4665A2; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-magnification-image: url('mag.svg'); +--search-magnification-select-image: url('mag_sel.svg'); +--search-active-color: black; +--search-filter-background-color: #F9FAFC; +--search-filter-foreground-color: black; +--search-filter-border-color: #90A5CE; +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #3D578C; +--search-results-foreground-color: #425E97; +--search-results-background-color: #EEF1F7; +--search-results-border-color: black; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #555; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-xml-cdata-color: black; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #4665A2; +--code-external-link-color: #4665A2; +--fragment-foreground-color: black; +--fragment-background-color: #FBFCFD; +--fragment-border-color: #C4CFE5; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #4665A2; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #4665A2; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--fragment-copy-ok-color: #2EC82E; +--tooltip-foreground-color: black; +--tooltip-background-color: white; +--tooltip-border-color: gray; +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #4665A2; +--tooltip-shadow: 1px 1px 7px gray; +--fold-line-color: #808080; +--fold-minus-image: url('minus.svg'); +--fold-plus-image: url('plus.svg'); +--fold-minus-image-relpath: url('../../minus.svg'); +--fold-plus-image-relpath: url('../../plus.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +/** special sections */ +--warning-color-bg: #f8d1cc; +--warning-color-hl: #b61825; +--warning-color-text: #75070f; +--note-color-bg: #faf3d8; +--note-color-hl: #f3a600; +--note-color-text: #5f4204; +--todo-color-bg: #e4f3ff; +--todo-color-hl: #1879C4; +--todo-color-text: #274a5c; +--test-color-bg: #e8e8ff; +--test-color-hl: #3939C4; +--test-color-text: #1a1a5c; +--deprecated-color-bg: #ecf0f3; +--deprecated-color-hl: #5b6269; +--deprecated-color-text: #43454a; +--bug-color-bg: #e4dafd; +--bug-color-hl: #5b2bdd; +--bug-color-text: #2a0d72; +--invariant-color-bg: #d8f1e3; +--invariant-color-hl: #44b86f; +--invariant-color-text: #265532; +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #90A5CE; +--page-visited-link-color: #A3B4D7; + +/* index */ +--index-odd-item-bg-color: #0B101A; +--index-even-item-bg-color: black; +--index-header-color: #C4CFE5; +--index-separator-color: #334975; + +/* header */ +--header-background-color: #070B11; +--header-separator-color: #141C2E; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #283A5D; +--group-header-color: #90A5CE; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #5B7AB7; +--footer-logo-width: 60px; +--citation-label-color: #90A5CE; +--glow-color: cyan; + +--title-background-color: #090D16; +--title-separator-color: #354C79; +--directory-separator-color: #283A5D; +--separator-color: #283A5D; + +--blockquote-background-color: #101826; +--blockquote-border-color: #283A5D; + +--scrollbar-thumb-color: #283A5D; +--scrollbar-background-color: #070B11; + +--icon-background-color: #334975; +--icon-foreground-color: #C4CFE5; +--icon-doc-image: url('docd.svg'); +--icon-folder-open-image: url('folderopend.svg'); +--icon-folder-closed-image: url('folderclosedd.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #0B101A; +--memdecl-separator-color: #2C3F65; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #7C95C6; + +/* detailed member list */ +--memdef-border-color: #233250; +--memdef-title-background-color: #1B2840; +--memdef-title-gradient-image: url('nav_fd.png'); +--memdef-proto-background-color: #19243A; +--memdef-proto-text-color: #9DB0D4; +--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); +--memdef-doc-background-color: black; +--memdef-param-name-color: #D28757; +--memdef-template-color: #7C95C6; + +/* tables */ +--table-cell-border-color: #283A5D; +--table-header-background-color: #283A5D; +--table-header-foreground-color: #C4CFE5; + +/* labels */ +--label-background-color: #354C7B; +--label-left-top-border-color: #4665A2; +--label-right-bottom-border-color: #283A5D; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #101826; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_bd.png'); +--nav-gradient-hover-image: url('tab_hd.png'); +--nav-gradient-active-image: url('tab_ad.png'); +--nav-gradient-active-image-parent: url("../tab_ad.png"); +--nav-separator-image: url('tab_sd.png'); +--nav-breadcrumb-image: url('bc_sd.png'); +--nav-breadcrumb-border-color: #2A3D61; +--nav-splitbar-image: url('splitbard.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #B6C4DF; +--nav-text-hover-color: #DCE2EF; +--nav-text-active-color: #DCE2EF; +--nav-text-normal-shadow: 0px 1px 1px black; +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #B6C4DF; +--nav-menu-background-color: #05070C; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.2); +--nav-arrow-color: #334975; +--nav-arrow-selected-color: #90A5CE; + +/* table of contents */ +--toc-background-color: #151E30; +--toc-border-color: #202E4A; +--toc-header-color: #A3B4D7; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-magnification-image: url('mag_d.svg'); +--search-magnification-select-image: url('mag_seld.svg'); +--search-active-color: #C5C5C5; +--search-filter-background-color: #101826; +--search-filter-foreground-color: #90A5CE; +--search-filter-border-color: #7C95C6; +--search-filter-highlight-text-color: #BCC9E2; +--search-filter-highlight-bg-color: #283A5D; +--search-results-background-color: #101826; +--search-results-foreground-color: #90A5CE; +--search-results-border-color: #7C95C6; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-xml-cdata-color: #C9D1D9; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #C0C0C0; +--code-vhdl-keyword-color: #CF53C9; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: #090D16; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--fragment-copy-ok-color: #0EA80E; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; +--fold-line-color: #808080; +--fold-minus-image: url('minusd.svg'); +--fold-plus-image: url('plusd.svg'); +--fold-minus-image-relpath: url('../../minusd.svg'); +--fold-plus-image-relpath: url('../../plusd.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +/** special sections */ +--warning-color-bg: #2e1917; +--warning-color-hl: #ad2617; +--warning-color-text: #f5b1aa; +--note-color-bg: #3b2e04; +--note-color-hl: #f1b602; +--note-color-text: #ceb670; +--todo-color-bg: #163750; +--todo-color-hl: #1982D2; +--todo-color-text: #dcf0fa; +--test-color-bg: #121258; +--test-color-hl: #4242cf; +--test-color-text: #c0c0da; +--deprecated-color-bg: #2e323b; +--deprecated-color-hl: #738396; +--deprecated-color-text: #abb0bd; +--bug-color-bg: #2a2536; +--bug-color-hl: #7661b3; +--bug-color-text: #ae9ed6; +--invariant-color-bg: #303a35; +--invariant-color-hl: #76ce96; +--invariant-color-text: #cceed5; +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; +} + +/* @group Heading Levels */ + +.title { + font-family: var(--font-family-normal); + line-height: 28px; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + border-bottom: 1px solid var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--glow-color); +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: var(--index-separator-color); +} + +#main-menu a:focus { + outline: auto; + z-index: 10; + position: relative; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: var(--index-header-color); +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + +.classindex dl.odd { + background-color: var(--index-odd-item-bg-color); +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: var(--page-link-color); + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: var(--page-visited-link-color); +} + +a:hover { + text-decoration: none; + background: linear-gradient(to bottom, transparent 0,transparent calc(100% - 1px), currentColor 100%); +} + +a:hover > span.arrow { + text-decoration: none; + background : var(--nav-background-color); +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: var(--code-link-color); +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: var(--code-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; + overflow-y: hidden; + position: relative; + min-height: 12px; + margin: 10px 0px; + padding: 10px 10px; + border: 1px solid var(--fragment-border-color); + border-radius: 4px; + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); +} + +pre.fragment { + word-wrap: break-word; + font-size: 10pt; + line-height: 125%; + font-family: var(--font-family-monospace); +} + +.clipboard { + width: 24px; + height: 24px; + right: 5px; + top: 5px; + opacity: 0; + position: absolute; + display: inline; + overflow: auto; + fill: var(--fragment-foreground-color); + justify-content: center; + align-items: center; + cursor: pointer; +} + +.clipboard.success { + border: 1px solid var(--fragment-foreground-color); + border-radius: 4px; +} + +.fragment:hover .clipboard, .clipboard.success { + opacity: .28; +} + +.clipboard:hover, .clipboard.success { + opacity: 1 !important; +} + +.clipboard:active:not([class~=success]) svg { + transform: scale(.91); +} + +.clipboard.success svg { + fill: var(--fragment-copy-ok-color); +} + +.clipboard.success { + border-color: var(--fragment-copy-ok-color); +} + +div.line { + font-family: var(--font-family-monospace); + font-size: 13px; + min-height: 13px; + line-height: 1.2; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); +} + +span.fold { + margin-left: 5px; + margin-right: 1px; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; + display: inline-block; + width: 12px; + height: 12px; + background-repeat:no-repeat; + background-position:center; +} + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); +} + +span.lineno a:hover { + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: var(--page-foreground-color); + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: var(--code-keyword-color); +} + +span.keywordtype { + color: var(--code-type-keyword-color); +} + +span.keywordflow { + color: var(--code-flow-keyword-color); +} + +span.comment { + color: var(--code-comment-color); +} + +span.preprocessor { + color: var(--code-preprocessor-color); +} + +span.stringliteral { + color: var(--code-string-literal-color); +} + +span.charliteral { + color: var(--code-char-literal-color); +} + +span.xmlcdata { + color: var(--code-xml-cdata-color); +} + +span.vhdldigit { + color: var(--code-vhdl-digit-color); +} + +span.vhdlchar { + color: var(--code-vhdl-char-color); +} + +span.vhdlkeyword { + color: var(--code-vhdl-keyword-color); +} + +span.vhdllogic { + color: var(--code-vhdl-logic-color); +} + +blockquote { + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid var(--table-cell-border-color); +} + +th.dirtab { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid var(--separator-color); +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: var(--memdecl-background-color); + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: var(--memdecl-foreground-color); +} + +.memSeparator { + border-bottom: 1px solid var(--memdecl-separator-color); + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: var(--memdecl-template-color); + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: var(--memdef-title-gradient-image); + background-repeat: repeat-x; + background-color: var(--memdef-title-background-color); + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: var(--memdef-template-color); + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px var(--glow-color); +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; +} + +.overload { + font-family: var(--font-family-monospace); + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: var(--memdef-doc-background-color); + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; + padding: 0px; + padding-bottom: 1px; +} + +.paramname { + white-space: nowrap; + padding: 0px; + padding-bottom: 1px; + margin-left: 2px; +} + +.paramname em { + color: var(--memdef-param-name-color); + font-style: normal; + margin-right: 1px; +} + +.paramname .paramdefval { + font-family: var(--font-family-monospace); +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: var(--font-family-monospace); + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); + text-shadow: none; + color: var(--label-foreground-color); + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + +.directory tr.even { + padding-left: 6px; + background-color: var(--index-even-item-bg-color); +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: var(--page-link-color); +} + +.arrow { + color: var(--nav-arrow-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-open-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-closed-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-doc-image); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: var(--footer-foreground-color); +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--memdef-border-color); +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image: var(--memdef-title-gradient-image); + background-repeat:repeat-x; + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: var(--nav-gradient-image); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image: var(--nav-gradient-image); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:var(--nav-breadcrumb-image); + background-repeat:no-repeat; + background-position:right; + color: var(--nav-foreground-color); +} + +.navpath li.navelem a +{ + height:32px; + display:block; + outline: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color: var(--footer-foreground-color); + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image: var(--header-gradient-image); + background-repeat:repeat-x; + background-color: var(--header-background-color); + margin: 0px; + border-bottom: 1px solid var(--header-separator-color); +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* + +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +*/ + +dl.bug dt a, dl.deprecated dt a, dl.todo dt a, dl.test a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, +dl.invariant, dl.pre, dl.post, dl.todo, dl.test, dl.remark { + padding: 10px; + margin: 10px 0px; + overflow: hidden; + margin-left: 0; + border-radius: 4px; +} + +dl.section dd { + margin-bottom: 2px; +} + +dl.warning, dl.attention { + background: var(--warning-color-bg); + border-left: 8px solid var(--warning-color-hl); + color: var(--warning-color-text); +} + +dl.warning dt, dl.attention dt { + color: var(--warning-color-hl); +} + +dl.note, dl.remark { + background: var(--note-color-bg); + border-left: 8px solid var(--note-color-hl); + color: var(--note-color-text); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-hl); +} + +dl.todo { + background: var(--todo-color-bg); + border-left: 8px solid var(--todo-color-hl); + color: var(--todo-color-text); +} + +dl.todo dt { + color: var(--todo-color-hl); +} + +dl.test { + background: var(--test-color-bg); + border-left: 8px solid var(--test-color-hl); + color: var(--test-color-text); +} + +dl.test dt { + color: var(--test-color-hl); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.bug { + background: var(--bug-color-bg); + border-left: 8px solid var(--bug-color-hl); + color: var(--bug-color-text); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.deprecated { + background: var(--deprecated-color-bg); + border-left: 8px solid var(--deprecated-color-hl); + color: var(--deprecated-color-text); +} + +dl.deprecated dt a { + color: var(--deprecated-color-hl) !important; +} + +dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd { + margin-inline-start: 0px; +} + +dl.invariant, dl.pre, dl.post { + background: var(--invariant-color-bg); + border-left: 8px solid var(--invariant-color-hl); + color: var(--invariant-color-text); +} + +dl.invariant dt, dl.pre dt, dl.post dt { + color: var(--invariant-color-hl); +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: var(--font-family-title); + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font-size: 90%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: 50% var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 15px; +} + +div.toc li.level4 { + margin-left: 15px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: bold; + color: var(--inherit-header-color); + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + border: 1px solid var(--tooltip-border-color); + border-radius: 4px 4px 4px 4px; + box-shadow: var(--tooltip-shadow); + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: var(--tooltip-doc-color); + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: var(--tooltip-link-color); +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: var(--tooltip-declaration-color); +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd, samp +{ + display: inline-block; +} +/* @end */ + +u { + text-decoration: underline; +} + +details>summary { + list-style-type: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; +} + +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + +body { + scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); +} + +::-webkit-scrollbar { + background-color: var(--scrollbar-background-color); + height: 12px; + width: 12px; +} +::-webkit-scrollbar-thumb { + border-radius: 6px; + box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); + border: solid 2px transparent; +} +::-webkit-scrollbar-corner { + background-color: var(--scrollbar-background-color); +} + diff --git a/git-main/doxygen.svg b/git-main/doxygen.svg new file mode 100644 index 0000000..79a7635 --- /dev/null +++ b/git-main/doxygen.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/git-main/doxygen_crawl.html b/git-main/doxygen_crawl.html new file mode 100644 index 0000000..8624c5b --- /dev/null +++ b/git-main/doxygen_crawl.html @@ -0,0 +1,102 @@ + + + +Validator / crawler helper + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/git-main/dynsections.js b/git-main/dynsections.js new file mode 100644 index 0000000..8f49326 --- /dev/null +++ b/git-main/dynsections.js @@ -0,0 +1,194 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +let dynsection = { + + // helper function + updateStripes : function() { + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); + }, + + toggleVisibility : function(linkObj) { + const base = $(linkObj).attr('id'); + const summary = $('#'+base+'-summary'); + const content = $('#'+base+'-content'); + const trigger = $('#'+base+'-trigger'); + const src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; + }, + + toggleLevel : function(level) { + $('table.directory tr').each(function() { + const l = this.id.split('_').length-1; + const i = $('#img'+this.id.substring(3)); + const a = $('#arr'+this.id.substring(3)); + if (l'); + // add vertical lines to other rows + $('span[class=lineno]').not(':eq(0)').append(''); + // add toggle controls to lines with fold divs + $('div[class=foldopen]').each(function() { + // extract specific id to use + const id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + const start = $(this).attr('data-start'); + const end = $(this).attr('data-end'); + // replace normal fold span with controls for the first line of a foldable fragment + $(this).find('span[class=fold]:first').replaceWith(''); + // append div for folded (closed) representation + $(this).after(''); + // extract the first line from the "open" section to represent closed content + const line = $(this).children().first().clone(); + // remove any glow that might still be active on the original line + $(line).removeClass('glow'); + if (start) { + // if line already ends with a start marker (e.g. trailing {), remove it + $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + } + // replace minus with plus symbol + $(line).find('span[class=fold]').css('background-image',codefold.plusImg[relPath]); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); + }, +}; +/* @license-end */ diff --git a/git-main/enum__for__each_8hpp_source.html b/git-main/enum__for__each_8hpp_source.html new file mode 100644 index 0000000..94629ae --- /dev/null +++ b/git-main/enum__for__each_8hpp_source.html @@ -0,0 +1,222 @@ + + + + + + + + + enum_name: /home/runner/work/enum_name/enum_name/include/mgutility/reflection/detail/enum_for_each.hpp Source File + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
enum_for_each.hpp
+
+
+
1/*
+
2MIT License
+
3
+
4Copyright (c) 2024 mguludag
+
5
+
6Permission is hereby granted, free of charge, to any person obtaining a copy
+
7of this software and associated documentation files (the "Software"), to deal
+
8in the Software without restriction, including without limitation the rights
+
9to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+
10copies of the Software, and to permit persons to whom the Software is
+
11furnished to do so, subject to the following conditions:
+
12
+
13The above copyright notice and this permission notice shall be included in all
+
14copies or substantial portions of the Software.
+
15
+
16THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+
17IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+
18FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+
19AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+
20LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+
21OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+
22SOFTWARE.
+
23*/
+
24
+
25#ifndef DETAIL_ENUM_FOR_EACH_HPP
+
26#define DETAIL_ENUM_FOR_EACH_HPP
+
27
+
28#include "meta.hpp"
+
29#include "mgutility/std/string_view.hpp"
+
30
+
31#include <cstdint>
+
32#include <utility>
+
33
+
+
34namespace mgutility
+
35{
+
36 namespace detail
+
37 {
+
47 template <typename T>
+
48 using string_or_view_t =
+
49 typename std::conditional<has_bit_or<T>::value, std::string,
+ +
51
+
58 template <typename Enum>
+
59 using enum_pair = std::pair<Enum, detail::string_or_view_t<Enum>>;
+
60 } // namespace detail
+
61
+
67 template <typename Enum>
+
+ +
69 {
+
70 using value_type = const detail::enum_pair<Enum>;
+
71 using size_type = std::size_t;
+
72
+
76 struct enum_iter
+
77 {
+
78 using const_iter_type = decltype(enum_range<Enum>::min);
+
79 using iter_type = detail::remove_const_t<const_iter_type>;
+
80 using iterator_category = std::forward_iterator_tag;
+
81 using value_type = const detail::enum_pair<Enum>;
+
82 using difference_type = std::ptrdiff_t;
+
83 using pointer = value_type *;
+
84 using reference = value_type &;
+
85
+
90 enum_iter() : m_pos{} {}
+
91
+
97 enum_iter(iter_type value) : m_pos{value} {}
+
98
+
104 auto operator++() -> enum_iter &
+
105 {
+
106 ++m_pos;
+
107 return *this;
+
108 }
+
109
+
115 auto operator++(int) -> enum_iter
+
116 {
+
117 m_pos++;
+
118 return *this;
+
119 }
+
120
+
127 auto operator!=(const enum_iter &other) const -> bool
+
128 {
+
129 return m_pos != other.m_pos;
+
130 }
+
131
+
138 auto operator==(const enum_iter &other) const -> bool
+
139 {
+
140 return m_pos == other.m_pos;
+
141 }
+
142
+
148 auto operator*() const -> value_type;
+
149
+
150 private:
+
151 iter_type m_pos;
+
152 };
+
153
+
154 public:
+
158 enum_for_each() = default;
+
159
+
165 auto begin() -> enum_iter & { return m_begin; }
+
166
+
172 auto end() -> enum_iter & { return m_end; }
+
173
+
+
179 auto size() -> std::size_t
+
180 {
+ +
182 }
+
+
183
+
184 private:
+
185 enum_iter m_begin{enum_range<Enum>::min};
+
186 enum_iter m_end{enum_range<Enum>::max};
+
187 };
+
+
188} // namespace mgutility
+
+
189
+
190#endif // DETAIL_ENUM_FOR_EACH_HPP
+
A basic string view class template.
Definition string_view.hpp:62
+
A class template for iterating over enum values.
Definition enum_for_each.hpp:69
+
auto size() -> std::size_t
Returns the size of the enum range.
Definition enum_for_each.hpp:179
+
enum_for_each()=default
Default constructor.
+
auto begin() -> enum_iter &
Returns an iterator to the beginning of the enum range.
Definition enum_for_each.hpp:165
+
auto end() -> enum_iter &
Returns an iterator to the end of the enum range.
Definition enum_for_each.hpp:172
+
Checks for MSVC compiler version.
Definition enum_for_each.hpp:35
+
Provides the range for an enumeration type.
Definition meta.hpp:161
+
+ + + + diff --git a/git-main/enum__name_8hpp_source.html b/git-main/enum__name_8hpp_source.html new file mode 100644 index 0000000..5e0a6b2 --- /dev/null +++ b/git-main/enum__name_8hpp_source.html @@ -0,0 +1,247 @@ + + + + + + + + + enum_name: /home/runner/work/enum_name/enum_name/include/mgutility/reflection/enum_name.hpp Source File + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
enum_name.hpp
+
+
+
1/*
+
2MIT License
+
3
+
4Copyright (c) 2023 mguludag
+
5
+
6Permission is hereby granted, free of charge, to any person obtaining a copy
+
7of this software and associated documentation files (the "Software"), to deal
+
8in the Software without restriction, including without limitation the rights
+
9to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+
10copies of the Software, and to permit persons to whom the Software is
+
11furnished to do so, subject to the following conditions:
+
12
+
13The above copyright notice and this permission notice shall be included in all
+
14copies or substantial portions of the Software.
+
15
+
16THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+
17IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+
18FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+
19AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+
20LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+
21OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+
22SOFTWARE.
+
23*/
+
24
+
25#ifndef MGUTILITY_ENUM_NAME_HPP
+
26#define MGUTILITY_ENUM_NAME_HPP
+
27
+
28#include "detail/enum_name_impl.hpp"
+
29
+
30namespace mgutility
+
31{
+
32
+
40 template <typename Enum>
+
+
41 constexpr auto enum_to_underlying(Enum e) noexcept
+ +
43 {
+
44 static_assert(std::is_enum<Enum>::value, "Value is not an Enum type!");
+
45 return static_cast<detail::underlying_type_t<Enum>>(e);
+
46 }
+
+
47
+
57 template <int Min, int Max, typename Enum>
+
+
58 MGUTILITY_CNSTXPR auto enum_name(Enum e) noexcept
+ +
60 {
+
61 static_assert(Min < Max - 1, "Max must be greater than (Min + 1)!");
+
62 static_assert(std::is_enum<Enum>::value, "Value is not an Enum type!");
+ +
64 }
+
+
65
+
75 template <typename Enum, int Min = enum_range<Enum>::min,
+
76 int Max = enum_range<Enum>::max>
+
77 MGUTILITY_CNSTXPR auto enum_name(Enum e) noexcept
+
78 -> detail::string_or_view_t<Enum>
+
79 {
+
80 static_assert(Min < Max - 1, "Max must be greater than (Min + 1)!");
+
81 static_assert(std::is_enum<Enum>::value, "Value is not an Enum type!");
+
82 return detail::enum_name_impl<Enum, Min, Max>(e);
+
83 }
+
84
+
91 template <typename Enum>
+
92 auto enum_for_each<Enum>::enum_iter::operator*() const -> value_type
+
93 {
+
94 auto value = static_cast<Enum>(m_pos);
+
95 return detail::enum_pair<Enum>{value, enum_name(value)};
+
96 }
+
97
+
107 template <typename Enum, int Min = enum_range<Enum>::min,
+
108 int Max = enum_range<Enum>::max,
+
109 detail::enable_if_t<!detail::has_bit_or<Enum>::value, bool> = true>
+
+
110 MGUTILITY_CNSTXPR auto to_enum(mgutility::string_view str) noexcept
+ +
112 {
+
113 static_assert(Min < Max - 1, "Max must be greater than (Min + 1)!");
+
114 static_assert(std::is_enum<Enum>::value, "Type is not an Enum type!");
+ +
116 }
+
+
117
+
127 template <typename Enum, int Min = enum_range<Enum>::min,
+
128 int Max = enum_range<Enum>::max,
+
129 detail::enable_if_t<detail::has_bit_or<Enum>::value, bool> = true>
+
130 MGUTILITY_CNSTXPR auto to_enum(mgutility::string_view str) noexcept
+ +
132 {
+
133 static_assert(Min < Max - 1, "Max must be greater than (Min + 1)!");
+
134 static_assert(std::is_enum<Enum>::value, "Type is not an Enum type!");
+
135 return detail::to_enum_bitmask_impl<Enum, Min, Max>(str);
+
136 }
+
137
+
147 template <typename Enum, int Min = enum_range<Enum>::min,
+
148 int Max = enum_range<Enum>::max>
+
+
149 MGUTILITY_CNSTXPR auto enum_cast(int value) noexcept
+ +
151 {
+
152 static_assert(Min < Max - 1, "Max must be greater than (Min + 1)!");
+
153 static_assert(std::is_enum<Enum>::value, "Type is not an Enum type!");
+
154 if (enum_name(static_cast<Enum>(value)).empty())
+
155 {
+
156 return mgutility::nullopt;
+
157 }
+
158 return static_cast<Enum>(value);
+
159 }
+
+
160} // namespace mgutility
+
161
+
170template <typename Enum, mgutility::detail::enable_if_t<
+
171 std::is_enum<Enum>::value, bool> = true>
+
172auto operator<<(std::ostream &os, Enum e) -> std::ostream &
+
173{
+
174 static_assert(std::is_enum<Enum>::value, "Value is not an Enum type!");
+
175 os << mgutility::enum_name(e);
+
176 return os;
+
177}
+
178
+
179#if defined(__cpp_lib_format)
+
180
+
181#include <format>
+
182
+
188template <typename Enum>
+
189 requires std::is_enum_v<Enum>
+
190struct std::formatter<Enum> : formatter<std::string_view>
+
191{
+
192 auto constexpr format(Enum e, format_context &ctx) const
+
193 {
+
194 return formatter<std::string_view>::format(mgutility::enum_name(e), ctx);
+
195 }
+
196};
+
197
+
198#endif
+
199
+
200#if defined(__has_include)
+
201#if __has_include(<fmt/ostream.h>)
+
202#include <fmt/ostream.h>
+
203#endif
+
204#endif
+
205
+
206#endif // MGUTILITY_ENUM_NAME_HPP
+
A basic string view class template.
Definition string_view.hpp:62
+
A class template that provides optional (nullable) objects.
Definition optional.hpp:64
+
Checks for MSVC compiler version.
Definition enum_for_each.hpp:35
+
constexpr auto enum_to_underlying(Enum e) noexcept -> detail::underlying_type_t< Enum >
Converts an enum value to its underlying integer value.
Definition enum_name.hpp:41
+
auto nullopt
A global instance of nullopt_t to represent null optional.
Definition optional.hpp:336
+
MGUTILITY_CNSTXPR auto to_enum(mgutility::string_view str) noexcept -> mgutility::optional< Enum >
Converts a string to an enum value.
Definition enum_name.hpp:110
+
MGUTILITY_CNSTXPR auto enum_name(Enum e) noexcept -> detail::string_or_view_t< Enum >
Gets the name of an enum value.
Definition enum_name.hpp:58
+
MGUTILITY_CNSTXPR auto enum_cast(int value) noexcept -> mgutility::optional< Enum >
Casts an integer value to an enum value.
Definition enum_name.hpp:149
+
Represents a sequence of enumeration values.
Definition meta.hpp:113
+
+ + + + diff --git a/git-main/enum__name__impl_8hpp_source.html b/git-main/enum__name__impl_8hpp_source.html new file mode 100644 index 0000000..defac16 --- /dev/null +++ b/git-main/enum__name__impl_8hpp_source.html @@ -0,0 +1,332 @@ + + + + + + + + + enum_name: /home/runner/work/enum_name/enum_name/include/mgutility/reflection/detail/enum_name_impl.hpp Source File + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
enum_name_impl.hpp
+
+
+
1/*
+
2MIT License
+
3
+
4Copyright (c) 2024 mguludag
+
5
+
6Permission is hereby granted, free of charge, to any person obtaining a copy
+
7of this software and associated documentation files (the "Software"), to deal
+
8in the Software without restriction, including without limitation the rights
+
9to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+
10copies of the Software, and to permit persons to whom the Software is
+
11furnished to do so, subject to the following conditions:
+
12
+
13The above copyright notice and this permission notice shall be included in all
+
14copies or substantial portions of the Software.
+
15
+
16THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+
17IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+
18FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+
19AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+
20LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+
21OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+
22SOFTWARE.
+
23*/
+
24
+
25#ifndef DETAIL_ENUM_NAME_IMPL_HPP
+
26#define DETAIL_ENUM_NAME_IMPL_HPP
+
27
+
28#include "enum_for_each.hpp"
+
29#include "mgutility/std/optional.hpp"
+
30#include "mgutility/std/string_view.hpp"
+
31
+
32#include <algorithm>
+
33#include <array>
+
34
+
40#if defined(_MSC_VER) && _MSC_VER < 1910
+
41#error "Requires MSVC 2017 or newer!"
+
47#elif defined(__clang__) && __clang_major__ < 6
+
48#error "Requires clang 6 or newer!"
+
54#elif defined(__GNUC__) && !defined(__clang__) && __GNUC__ < 9
+
55#error "Requires gcc 9 or newer!"
+
61#elif !defined(_MSC_VER) && !defined(__clang__) && !defined(__GNUC__)
+
62#error "Your compiler is not supported!"
+
63#endif
+
64
+
70#ifdef _MSC_VER
+
71#define __PRETTY_FUNCTION__ __FUNCSIG__
+
72#endif
+
73
+
74namespace mgutility
+
75{
+
76 namespace detail
+
77 {
+
78
+
+
79 struct enum_type
+
80 {
+
88 template <
+
89 typename Enum, Enum e,
+
90 detail::enable_if_t<!detail::is_scoped_enum<Enum>::value, bool> = true>
+
+
91 MGUTILITY_CNSTXPR static auto name() noexcept -> mgutility::string_view
+
92 {
+
93 auto str = mgutility::string_view(__PRETTY_FUNCTION__);
+
94 auto offset = lastidxenumname[0] + lastidxenumname[1];
+
95 auto index = std::max(str.rfind(lastidxenumname[2], str.size() - offset),
+
96 str.rfind(lastidxenumname[3], str.size() - offset));
+
97 auto result = str.substr(index + 1, str.size() - offset - index);
+
98 return result[0] == '(' ? "" : result;
+
99 }
+
+
100
+
108 template <
+
109 typename Enum, Enum e,
+
110 detail::enable_if_t<detail::is_scoped_enum<Enum>::value, bool> = true>
+
+
111 MGUTILITY_CNSTXPR static auto name() noexcept -> mgutility::string_view
+
112 {
+
113 auto str = mgutility::string_view(__PRETTY_FUNCTION__);
+
114 auto index =
+
115 str.rfind(lastidxenumname[3], str.size() - lastidxenumname[0]) + 1;
+
116 auto result = str.substr(index, str.size() - lastidxenumname[0] - index);
+
117 return result.size() > 4 && result[4] == lastidxenumname[4] ? "" : result;
+
118 }
+
+
119
+
120 private:
+
121 static constexpr int lastidxenumname[] =
+
122#if defined(__clang__)
+
123 {1, 1, ' ', ':', '('};
+
124#elif defined(_MSC_VER)
+
125 {21, 0, ',', ':', '<'};
+
126#elif defined(__GNUC__)
+
127 {
+
128#if MGUTILITY_CPLUSPLUS < 201703L
+
129 163,
+
130#else
+
131 157,
+
132#endif
+
133 5, ' ', ':', '('};
+
134#endif
+
135 };
+
+
136
+
144 template <typename Enum, Enum... Is>
+
145 MGUTILITY_CNSTXPR inline auto
+
146 get_enum_array(detail::enum_sequence<Enum, Is...> /*unused*/) noexcept
+
147 -> std::array<mgutility::string_view, sizeof...(Is) + 1>
+
148 {
+
149 return std::array<mgutility::string_view, sizeof...(Is) + 1>{
+
150 "", enum_type::template name<Enum, Is>()...};
+
151 }
+
152
+
162 template <typename Enum, int Min, int Max>
+
163 MGUTILITY_CNSTXPR inline auto to_enum_impl(mgutility::string_view str) noexcept
+ +
165 {
+
166 MGUTILITY_CNSTXPR auto arr =
+
167 get_enum_array<Enum>(detail::make_enum_sequence<Enum, Min, Max>());
+
168 const auto index{std::find(arr.begin() + 1, arr.end(), str)};
+
169 return index == arr.end() ? mgutility::nullopt
+
170 : mgutility::optional<Enum>{static_cast<Enum>(
+
171 std::distance(arr.begin(), index) + Min - 1)};
+
172 }
+
173
+
183 template <typename Enum, int Min, int Max>
+
184 MGUTILITY_CNSTXPR auto to_enum_bitmask_impl(mgutility::string_view str) noexcept
+ +
186 {
+
187
+
188 // Check if the string contains a '|' character
+
189 if (str.find('|') == mgutility::string_view::npos)
+
190 {
+
191 return to_enum_impl<Enum, Min, Max>(str);
+
192 }
+
193
+ +
195 std::size_t index = 0;
+
196
+
197 for (std::size_t i = 0; i < str.size(); ++i)
+
198 {
+
199 if (str[i] == '|')
+
200 {
+
201 auto name = str.substr(index, i - index);
+
202 auto maybe_enum = to_enum_impl<Enum, Min, Max>(name);
+
203
+
204 if (!name.empty() && maybe_enum)
+
205 {
+
206 result.emplace(result ? static_cast<Enum>(*result | *maybe_enum)
+
207 : *maybe_enum);
+
208 }
+
209
+
210 index = i + 1;
+
211 }
+
212 }
+
213
+
214 auto maybe_enum = to_enum_impl<Enum, Min, Max>(str.substr(index));
+
215 if (result && maybe_enum)
+
216 {
+
217 result.emplace(static_cast<Enum>(*result | *maybe_enum));
+
218 }
+
219 else
+
220 {
+
221 result.reset();
+
222 }
+
223
+
224 return result;
+
225 }
+
226
+
236 template <typename Enum, int Min, int Max,
+
237 detail::enable_if_t<!detail::has_bit_or<Enum>::value, bool> = true>
+
238 MGUTILITY_CNSTXPR auto enum_name_impl(Enum e) noexcept
+ +
240 {
+
241 MGUTILITY_CNSTXPR auto arr =
+
242 get_enum_array<Enum>(detail::make_enum_sequence<Enum, Min, Max>());
+
243 const auto index{(Min < 0 ? Min * -1 : Min) + static_cast<int>(e) + 1};
+
244 return arr[(index < Min || index > arr.size() - 1) ? 0 : index];
+
245 }
+
246
+
257 template <typename Enum, int Min, int Max,
+
258 detail::enable_if_t<detail::has_bit_or<Enum>::value, bool> = true>
+
259 MGUTILITY_CNSTXPR_CLANG_WA inline auto enum_name_impl(Enum e) noexcept
+
260 -> detail::string_or_view_t<Enum>
+
261 {
+
262
+
263 // Get the array of enum names
+
264 MGUTILITY_CNSTXPR auto arr =
+
265 get_enum_array<Enum>(detail::make_enum_sequence<Enum, Min, Max>());
+
266
+
267 // Calculate the index in the array
+
268 const auto index = (Min < 0 ? -Min : Min) + static_cast<int>(e) + 1;
+
269 const auto name =
+
270 arr[(index < Min || index >= static_cast<int>(arr.size())) ? 0 : index];
+
271
+
272 // Lambda to check if a character is a digit
+
273 const auto is_digit = [](char c)
+
274 { return c >= '0' && c <= '9'; };
+
275
+
276 // Return the name if it's valid
+
277 if (!name.empty() && !is_digit(name[0]))
+
278 {
+
279 return std::string{name};
+
280 }
+
281
+
282 // Construct bitmasked name
+
283 std::string bitmasked_name;
+
284 for (auto i = Min; i < Max; ++i)
+
285 {
+
286 const auto idx = (Min < 0 ? -Min : Min) + i + 1;
+
287 if (idx >= 0 && idx < static_cast<int>(arr.size()) && !arr[idx].empty() &&
+
288 !is_digit(arr[idx][0]) &&
+
289 (e & static_cast<Enum>(i)) == static_cast<Enum>(i))
+
290 {
+
291 bitmasked_name.append(arr[idx]).append("|");
+
292 }
+
293 }
+
294
+
295 // Remove the trailing '|' if present
+
296 if (!bitmasked_name.empty())
+
297 {
+
298 bitmasked_name.pop_back();
+
299 }
+
300
+
301 return bitmasked_name.find('|') != std::string::npos ? bitmasked_name
+
302 : std::string{""};
+
303 }
+
304 } // namespace detail
+
305} // namespace mgutility
+
306
+
307#endif // DETAIL_ENUM_NAME_IMPL_HPP
+
A basic string view class template.
Definition string_view.hpp:62
+
A class template that provides optional (nullable) objects.
Definition optional.hpp:64
+
#define MGUTILITY_CNSTXPR_CLANG_WA
Defines the MGUTILITY_CNSTXPR macro based on the C++ standard.
Definition definitions.hpp:69
+
Checks for MSVC compiler version.
Definition enum_for_each.hpp:35
+
auto nullopt
A global instance of nullopt_t to represent null optional.
Definition optional.hpp:336
+
Definition enum_name_impl.hpp:80
+
static MGUTILITY_CNSTXPR auto name() noexcept -> mgutility::string_view
Gets the name of an unscoped enum value.
Definition enum_name_impl.hpp:91
+
+ + + + diff --git a/git-main/files.html b/git-main/files.html new file mode 100644 index 0000000..6a746da --- /dev/null +++ b/git-main/files.html @@ -0,0 +1,103 @@ + + + + + + + + + enum_name: File List + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 12345]
+ + + + + + + + + + + + + +
  include
  mgutility
  _common
 definitions.hppDefines macros for compiler and standard support detection
  reflection
  detail
 enum_for_each.hpp
 enum_name_impl.hpp
 meta.hpp
 enum_name.hpp
  std
 optional.hpp
 string_view.hpp
+
+
+ + + + diff --git a/git-main/folderclosed.svg b/git-main/folderclosed.svg new file mode 100644 index 0000000..b04bed2 --- /dev/null +++ b/git-main/folderclosed.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/git-main/folderclosedd.svg b/git-main/folderclosedd.svg new file mode 100644 index 0000000..52f0166 --- /dev/null +++ b/git-main/folderclosedd.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/git-main/folderopen.svg b/git-main/folderopen.svg new file mode 100644 index 0000000..f6896dd --- /dev/null +++ b/git-main/folderopen.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/git-main/folderopend.svg b/git-main/folderopend.svg new file mode 100644 index 0000000..2d1f06e --- /dev/null +++ b/git-main/folderopend.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/git-main/functions.html b/git-main/functions.html new file mode 100644 index 0000000..37b1a31 --- /dev/null +++ b/git-main/functions.html @@ -0,0 +1,165 @@ + + + + + + + + + enum_name: Class Members + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- b -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- h -

+ + +

- n -

+ + +

- o -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- v -

+ + +

- w -

+ + +

- ~ -

+
+ + + + diff --git a/git-main/functions_func.html b/git-main/functions_func.html new file mode 100644 index 0000000..8309990 --- /dev/null +++ b/git-main/functions_func.html @@ -0,0 +1,157 @@ + + + + + + + + + enum_name: Class Members - Functions + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented functions with links to the class documentation for each member:
+ +

- b -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- h -

+ + +

- n -

+ + +

- o -

+ + +

- r -

+ + +

- s -

+ + +

- v -

+ + +

- w -

+ + +

- ~ -

+
+ + + + diff --git a/git-main/functions_rela.html b/git-main/functions_rela.html new file mode 100644 index 0000000..d96cb8f --- /dev/null +++ b/git-main/functions_rela.html @@ -0,0 +1,88 @@ + + + + + + + + + enum_name: Class Members - Related Symbols + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented related symbols with links to the class documentation for each member:
+
+ + + + diff --git a/git-main/functions_type.html b/git-main/functions_type.html new file mode 100644 index 0000000..73ba43b --- /dev/null +++ b/git-main/functions_type.html @@ -0,0 +1,86 @@ + + + + + + + + + enum_name: Class Members - Typedefs + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented typedefs with links to the class documentation for each member:
+
+ + + + diff --git a/git-main/functions_vars.html b/git-main/functions_vars.html new file mode 100644 index 0000000..d3bf88d --- /dev/null +++ b/git-main/functions_vars.html @@ -0,0 +1,86 @@ + + + + + + + + + enum_name: Class Members - Variables + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented variables with links to the class documentation for each member:
+
+ + + + diff --git a/git-main/globals.html b/git-main/globals.html new file mode 100644 index 0000000..2828888 --- /dev/null +++ b/git-main/globals.html @@ -0,0 +1,88 @@ + + + + + + + + + enum_name: File Members + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented file members with links to the documentation:
+
+ + + + diff --git a/git-main/globals_defs.html b/git-main/globals_defs.html new file mode 100644 index 0000000..61321f1 --- /dev/null +++ b/git-main/globals_defs.html @@ -0,0 +1,88 @@ + + + + + + + + + enum_name: File Members + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented macros with links to the documentation:
+
+ + + + diff --git a/git-main/hierarchy.html b/git-main/hierarchy.html new file mode 100644 index 0000000..fe53423 --- /dev/null +++ b/git-main/hierarchy.html @@ -0,0 +1,108 @@ + + + + + + + + + enum_name: Class Hierarchy + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + +
 Cmgutility::basic_string_view< Char >A basic string view class template
 Cmgutility::enum_for_each< Enum >A class template for iterating over enum values
 Cmgutility::enum_range< T >Provides the range for an enumeration type
 Cmgutility::enum_range< color >
 Cmgutility::enum_range< rgb_color >
 Cmgutility::detail::enum_sequence< Enum,... >Represents a sequence of enumeration values
 Cmgutility::detail::enum_sequence_helper< Enum, Min, Max, Next >Helper for generating a sequence of enumeration values
 Cmgutility::detail::enum_sequence_helper< Enum, Min, Min, Next... >Specialization of enum_sequence_helper for the end of the sequence
 Cmgutility::detail::enum_type
 Cstd::exception
 Cmgutility::bad_optional_accessException thrown when accessing an empty optional
 Cstd::false_type
 Cmgutility::detail::has_bit_or< T, typename >Trait to check if a type supports the bitwise OR operator
 Cmgutility::detail::is_scoped_enum< E >Trait to check if a type is a scoped enumeration
 Cmgutility::nullopt_tRepresents a null optional
 Cmgutility::optional< T >A class template that provides optional (nullable) objects
 Cstd::true_type
 Cmgutility::detail::has_bit_or< T, decltype((T{}|T{}), void())>Specialization of has_bit_or for types that support the bitwise OR operator
+
+
+ + + + diff --git a/git-main/index.html b/git-main/index.html new file mode 100644 index 0000000..6e7230f --- /dev/null +++ b/git-main/index.html @@ -0,0 +1,90 @@ + + + + + + + + + enum_name: Main page + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Main page
+
+
+

Converting (scoped)enum values to string names written in C++>=11

+

Version: 1.0

+
+ +
+ + + + diff --git a/git-main/jquery.js b/git-main/jquery.js new file mode 100644 index 0000000..1dffb65 --- /dev/null +++ b/git-main/jquery.js @@ -0,0 +1,34 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/git-main/md__2home_2runner_2work_2enum__name_2enum__name_2README.html b/git-main/md__2home_2runner_2work_2enum__name_2enum__name_2README.html new file mode 100644 index 0000000..b1096a3 --- /dev/null +++ b/git-main/md__2home_2runner_2work_2enum__name_2enum__name_2README.html @@ -0,0 +1,221 @@ + + + + + + + + + enum_name: enum_name + + + + + + + + + + + + +
+
+ + + + + + +
+
enum_name + +
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
enum_name
+
+
+

Converting (scoped)enum values to/from string names written in C++>=11.

+

+Supported Compilers

+
    +
  • Clang > 5
  • +
  • GCC > 8
  • +
  • MSVC > 2015
  • +
+

+Features

+
    +
  • Supports enum and enum class
  • +
  • Supports enums in namespaces, classes or structs even templated or not
  • +
  • Supports full compile-time with C++20 and later
  • +
  • Changing enum range with template parameter (default range: [0, 256)) on each call or with your special function for types or adding specialized enum_range<Enum> struct
  • +
  • Supports and automatically overloaded operator<< and add std::formatter specialization for Enum types to direct using with ostream objects and std::format (If fmtlib is available, simply adding the specialization like this [template <> struct fmt::formatter<YourEnumType> : ostream_formatter {};] is enough.)
  • +
  • Supports custom enum name output by explicit specialization of constexpr auto mgutility::detail::enum_type::name<Enum, EnumValue>() noexcept function
  • +
  • Supports bitmasked enums and auto detect them
  • +
  • Supports iterate over enum (names and values) with mgutility::enum_for_each<T>() class and it is compatible with standard ranges and views
  • +
+

+Limitations

+
    +
  • Compiler versions
  • +
  • Wider range can increase compile time so user responsible to adjusting for enum's range
  • +
+

+Fetch library with CMake

+
include(FetchContent)
+
+
FetchContent_Declare(
+
enum_name
+
GIT_REPOSITORY https://github.com/mguludag/enum_name.git
+
GIT_TAG main # or the specific tag or branch you want to use
+
)
+
+
FetchContent_MakeAvailable(enum_name)
+
+
#...
+
+
target_link_libraries(${PROJECT_NAME} PRIVATE mgutility::enum_name)
+

+Example usage (try it!)

+
++
+
#include "mgutility/reflection/enum_name.hpp"
+
#include <iostream>
+
+
enum class rgb_color {
+
red = 1 << 0,
+
green = 1 << 1,
+
blue = 1 << 2,
+
unknown = -1
+
};
+
+
auto constexpr operator|(rgb_color lhs, rgb_color rhs) -> rgb_color {
+
return static_cast<rgb_color>(mgutility::enum_to_underlying(lhs) |
+ +
}
+
+
auto constexpr operator&(rgb_color lhs, rgb_color rhs) -> rgb_color {
+
return static_cast<rgb_color>(mgutility::enum_to_underlying(lhs) &
+ +
}
+
+
// specialize rgb_color::unknown to make output "UNKNOWN" instead of "unknown"
+
template <>
+
constexpr auto
+
mgutility::detail::enum_type::name<rgb_color, rgb_color::unknown>() noexcept
+
-> mgutility::string_view {
+
return "UNKNOWN";
+
}
+
+
// you can specialize enum ranges with overload per enum types (option 1)
+
template <> struct mgutility::enum_range<rgb_color> {
+
static constexpr auto min = -1;
+
static constexpr auto max = 5;
+
};
+
+
// you can specialize enum ranges with overload per enum types (option 2)
+
auto enum_name = [](rgb_color c) { return mgutility::enum_name<-1, 5>(c); };
+
+
#if defined(__cpp_lib_print)
+
#include <print>
+
#include <ranges>
+
#endif
+
+
int main() {
+
auto x = rgb_color::blue;
+
auto y = mgutility::to_enum<rgb_color>("green|red");
+
+
#if MGUTILITY_CPLUSPLUS > 201703L
+
static_assert(mgutility::enum_name(rgb_color::blue | rgb_color::red) == "red|blue");
+
static_assert(mgutility::to_enum<rgb_color>("red|blue") == (rgb_color::blue | rgb_color::red));
+
#endif
+
+
#if defined(__cpp_lib_print)
+
+
// enum_for_each<T> can usable with views and range algorithms
+ +
std::ranges::views::filter([](auto &&pair) {
+
return !pair.second.empty() && pair.second != "UNKNOWN";
+
});
+
+
std::ranges::for_each(colors, [](auto &&color) {
+
std::println("{} \t: {}", color.second,
+ +
});
+
+
#else
+
+
for (auto &&e : mgutility::enum_for_each<rgb_color>()) {
+
if (!e.second.empty() && e.second != "UNKNOWN") {
+
std::cout << e.second << " \t: " << mgutility::enum_to_underlying(e.first)
+
<< '\n';
+
}
+
// std::pair<Enum, string_view> {enum_type, name_of_enum}
+
}
+
#endif
+
+
// default signature: enum_name<min_value = -128, max_value = 128, Enum
+
// typename>(Enum&&) Changing max_value to not too much greater than enum's
+
// max value, it will compiles faster
+
std::cout << x << '\n'; // will print "blue" to output
+
+
// calling specialized enum ranges function for rgb_color type
+
// will print "green" to output, if y can't convert to rgb_color prints
+
// "UNKNOWN"
+
std::cout << enum_name(y.value_or(rgb_color::unknown)) << '\n';
+
}
+
A class template for iterating over enum values.
Definition enum_for_each.hpp:69
+
Checks for MSVC compiler version.
Definition enum_for_each.hpp:35
+
constexpr auto enum_to_underlying(Enum e) noexcept -> detail::underlying_type_t< Enum >
Converts an enum value to its underlying integer value.
Definition enum_name.hpp:41
+
MGUTILITY_CNSTXPR auto enum_name(Enum e) noexcept -> detail::string_or_view_t< Enum >
Gets the name of an enum value.
Definition enum_name.hpp:58
+
Provides the range for an enumeration type.
Definition meta.hpp:161
+
+
+ + + + diff --git a/git-main/menu.js b/git-main/menu.js new file mode 100644 index 0000000..717761d --- /dev/null +++ b/git-main/menu.js @@ -0,0 +1,134 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + let result=''; + if ('children' in data) { + result+='
    '; + for (let i in data.children) { + let url; + const link = data.children[i].url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + } else { + url = relPath+link; + } + result+='
  • '+ + data.children[i].text+''+ + makeTree(data.children[i],relPath)+'
  • '; + } + result+='
'; + } + return result; + } + let searchBoxHtml; + if (searchEnabled) { + if (serverSide) { + searchBoxHtml='
'+ + '
'+ + '
 '+ + ''+ + '
'+ + '
'+ + '
'+ + '
'; + } else { + searchBoxHtml='
'+ + ''+ + ' '+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
'; + } + } + + $('#main-nav').before('
'+ + ''+ + ''+ + '
'); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBoxHtml) { + $('#main-menu').append('
  • '); + } + const $mainMenuState = $('#main-menu-state'); + let prevWidth = 0; + if ($mainMenuState.length) { + const initResizableIfExists = function() { + if (typeof initResizable==='function') initResizable(); + } + // animate mobile menu + $mainMenuState.change(function() { + const $menu = $('#main-menu'); + let options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = () => $menu.css('display', 'block'); + $menu.hide().slideDown(options); + } else { + options['complete'] = () => $menu.css('display', 'none'); + $menu.show().slideUp(options); + } + }); + // set default menu visibility + const resetState = function() { + const $menu = $('#main-menu'); + const newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + prevWidth = newWidth; + } + } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/git-main/menudata.js b/git-main/menudata.js new file mode 100644 index 0000000..e88af41 --- /dev/null +++ b/git-main/menudata.js @@ -0,0 +1,73 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Related Pages",url:"pages.html"}, +{text:"Namespaces",url:"namespaces.html",children:[ +{text:"Namespace List",url:"namespaces.html"}, +{text:"Namespace Members",url:"namespacemembers.html",children:[ +{text:"All",url:"namespacemembers.html"}, +{text:"Functions",url:"namespacemembers_func.html"}, +{text:"Variables",url:"namespacemembers_vars.html"}]}]}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"hierarchy.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"b",url:"functions.html#index_b"}, +{text:"d",url:"functions.html#index_d"}, +{text:"e",url:"functions.html#index_e"}, +{text:"f",url:"functions.html#index_f"}, +{text:"h",url:"functions.html#index_h"}, +{text:"n",url:"functions.html#index_n"}, +{text:"o",url:"functions.html#index_o"}, +{text:"r",url:"functions.html#index_r"}, +{text:"s",url:"functions.html#index_s"}, +{text:"t",url:"functions.html#index_t"}, +{text:"v",url:"functions.html#index_v"}, +{text:"w",url:"functions.html#index_w"}, +{text:"~",url:"functions.html#index__7E"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"b",url:"functions_func.html#index_b"}, +{text:"d",url:"functions_func.html#index_d"}, +{text:"e",url:"functions_func.html#index_e"}, +{text:"f",url:"functions_func.html#index_f"}, +{text:"h",url:"functions_func.html#index_h"}, +{text:"n",url:"functions_func.html#index_n"}, +{text:"o",url:"functions_func.html#index_o"}, +{text:"r",url:"functions_func.html#index_r"}, +{text:"s",url:"functions_func.html#index_s"}, +{text:"v",url:"functions_func.html#index_v"}, +{text:"w",url:"functions_func.html#index_w"}, +{text:"~",url:"functions_func.html#index__7E"}]}, +{text:"Variables",url:"functions_vars.html"}, +{text:"Typedefs",url:"functions_type.html"}, +{text:"Related Symbols",url:"functions_rela.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}, +{text:"File Members",url:"globals.html",children:[ +{text:"All",url:"globals.html"}, +{text:"Macros",url:"globals_defs.html"}]}]}]} diff --git a/git-main/meta_8hpp_source.html b/git-main/meta_8hpp_source.html new file mode 100644 index 0000000..f95bafc --- /dev/null +++ b/git-main/meta_8hpp_source.html @@ -0,0 +1,205 @@ + + + + + + + + + enum_name: /home/runner/work/enum_name/enum_name/include/mgutility/reflection/detail/meta.hpp Source File + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    meta.hpp
    +
    +
    +
    1/*
    +
    2MIT License
    +
    3
    +
    4Copyright (c) 2024 mguludag
    +
    5
    +
    6Permission is hereby granted, free of charge, to any person obtaining a copy
    +
    7of this software and associated documentation files (the "Software"), to deal
    +
    8in the Software without restriction, including without limitation the rights
    +
    9to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +
    10copies of the Software, and to permit persons to whom the Software is
    +
    11furnished to do so, subject to the following conditions:
    +
    12
    +
    13The above copyright notice and this permission notice shall be included in all
    +
    14copies or substantial portions of the Software.
    +
    15
    +
    16THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +
    17IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +
    18FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +
    19AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +
    20LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +
    21OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +
    22SOFTWARE.
    +
    23*/
    +
    24
    +
    25
    +
    26
    +
    27#ifndef DETAIL_META_HPP
    +
    28#define DETAIL_META_HPP
    +
    29
    + +
    31#include <type_traits>
    +
    32
    +
    33namespace mgutility {
    +
    34 namespace detail {
    +
    40 template <typename E>
    +
    + +
    45 static constexpr auto value = std::is_enum<E>::value &&
    +
    46 !std::is_convertible<E, typename std::underlying_type<E>::type>::value;
    +
    47 };
    +
    +
    48
    +
    55 template <typename T, typename = void>
    +
    +
    56 struct has_bit_or : std::false_type {
    +
    57 };
    +
    +
    58
    +
    64 template <typename T>
    +
    +
    65 struct has_bit_or<T, decltype((T{} | T{}), void())> : std::true_type {
    +
    66 };
    +
    +
    67
    +
    68#if MGUTILITY_CPLUSPLUS > 201103L
    +
    74 template <typename E>
    +
    75 static constexpr bool is_scoped_enum_v = is_scoped_enum<E>::value;
    +
    76#endif
    +
    77
    +
    87 template <bool B, class T = void>
    +
    88 using enable_if_t = typename std::enable_if<B, T>::type;
    +
    89
    +
    95 template <typename T>
    +
    96 using underlying_type_t = typename std::underlying_type<T>::type;
    +
    97
    +
    103 template <typename T>
    +
    104 using remove_const_t = typename std::remove_const<T>::type;
    +
    105
    +
    112 template <typename Enum, Enum...>
    +
    + +
    114 };
    +
    +
    115
    +
    124 template <typename Enum, int Min, int Max, int... Next>
    +
    + +
    126 : enum_sequence_helper<Enum, Min, Max - 1, Max - 1, Next...> {
    +
    127 };
    +
    +
    128
    +
    136 template <typename Enum, int Min, int... Next>
    + +
    143
    +
    151 template <typename Enum, int Min, int Max>
    +
    152 using make_enum_sequence = typename enum_sequence_helper<Enum, Min, Max>::type;
    +
    153 } // namespace detail
    +
    154
    +
    160 template <typename T>
    +
    +
    161 struct enum_range {
    +
    162 static constexpr auto min{0};
    +
    163 static constexpr auto max{256};
    +
    164 };
    +
    +
    165} // namespace mgutility
    +
    166
    +
    167#endif // DETAIL_META_HPP
    +
    Defines macros for compiler and standard support detection.
    +
    Checks for MSVC compiler version.
    Definition enum_for_each.hpp:35
    +
    Helper for generating a sequence of enumeration values.
    Definition meta.hpp:126
    +
    Represents a sequence of enumeration values.
    Definition meta.hpp:113
    +
    Trait to check if a type supports the bitwise OR operator.
    Definition meta.hpp:56
    +
    Trait to check if a type is a scoped enumeration.
    Definition meta.hpp:41
    +
    static constexpr auto value
    Boolean value indicating if the type is a scoped enumeration.
    Definition meta.hpp:45
    +
    Provides the range for an enumeration type.
    Definition meta.hpp:161
    +
    + + + + diff --git a/git-main/minus.svg b/git-main/minus.svg new file mode 100644 index 0000000..f70d0c1 --- /dev/null +++ b/git-main/minus.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/git-main/minusd.svg b/git-main/minusd.svg new file mode 100644 index 0000000..5f8e879 --- /dev/null +++ b/git-main/minusd.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/git-main/namespacemembers.html b/git-main/namespacemembers.html new file mode 100644 index 0000000..6239def --- /dev/null +++ b/git-main/namespacemembers.html @@ -0,0 +1,90 @@ + + + + + + + + + enum_name: Namespace Members + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    +
    + + + + diff --git a/git-main/namespacemembers_func.html b/git-main/namespacemembers_func.html new file mode 100644 index 0000000..38c0f54 --- /dev/null +++ b/git-main/namespacemembers_func.html @@ -0,0 +1,89 @@ + + + + + + + + + enum_name: Namespace Members + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    +
    + + + + diff --git a/git-main/namespacemembers_vars.html b/git-main/namespacemembers_vars.html new file mode 100644 index 0000000..608128d --- /dev/null +++ b/git-main/namespacemembers_vars.html @@ -0,0 +1,86 @@ + + + + + + + + + enum_name: Namespace Members + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace variables with links to the namespaces they belong to:
    +
    + + + + diff --git a/git-main/namespacemgutility.html b/git-main/namespacemgutility.html new file mode 100644 index 0000000..35de8d9 --- /dev/null +++ b/git-main/namespacemgutility.html @@ -0,0 +1,367 @@ + + + + + + + + + enum_name: mgutility Namespace Reference + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    + +
    mgutility Namespace Reference
    +
    +
    + +

    Checks for MSVC compiler version. +More...

    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  bad_optional_access
     Exception thrown when accessing an empty optional. More...
     
    class  basic_string_view
     A basic string view class template. More...
     
    class  enum_for_each
     A class template for iterating over enum values. More...
     
    struct  enum_range
     Provides the range for an enumeration type. More...
     
    struct  enum_range< color >
     
    struct  enum_range< rgb_color >
     
    struct  nullopt_t
     Represents a null optional. More...
     
    class  optional
     A class template that provides optional (nullable) objects. More...
     
    + + + +

    +Typedefs

    +using string_view = basic_string_view<char>
     
    + + + + + + + + + + + + + + + + + +

    +Functions

    template<typename Enum >
    constexpr auto enum_to_underlying (Enum e) noexcept -> detail::underlying_type_t< Enum >
     Converts an enum value to its underlying integer value.
     
    template<int Min, int Max, typename Enum >
    MGUTILITY_CNSTXPR auto enum_name (Enum e) noexcept -> detail::string_or_view_t< Enum >
     Gets the name of an enum value.
     
    template<typename Enum , int Min = enum_range<Enum>::min, int Max = enum_range<Enum>::max, detail::enable_if_t<!detail::has_bit_or< Enum >::value, bool > = true>
    MGUTILITY_CNSTXPR auto to_enum (mgutility::string_view str) noexcept -> mgutility::optional< Enum >
     Converts a string to an enum value.
     
    template<typename Enum , int Min = enum_range<Enum>::min, int Max = enum_range<Enum>::max>
    MGUTILITY_CNSTXPR auto enum_cast (int value) noexcept -> mgutility::optional< Enum >
     Casts an integer value to an enum value.
     
    + + + + +

    +Variables

    +auto nullopt = nullopt_t{}
     A global instance of nullopt_t to represent null optional.
     
    +

    Detailed Description

    +

    Checks for MSVC compiler version.

    +

    If the MSVC version is less than 2017, an error is raised.

    +

    Defines the MGUTILITY_CPLUSPLUS macro for MSVC and other compilers.

    +

    For MSVC, it uses _MSVC_LANG. For other compilers, it uses __cplusplus.

    +

    Function Documentation

    + +

    ◆ enum_cast()

    + +
    +
    +
    +template<typename Enum , int Min = enum_range<Enum>::min, int Max = enum_range<Enum>::max>
    + + + + + +
    + + + + + + + +
    MGUTILITY_CNSTXPR auto mgutility::enum_cast (int value) -> mgutility::optional<Enum> +
    +
    +noexcept
    +
    + +

    Casts an integer value to an enum value.

    +
    Template Parameters
    + + + + +
    EnumThe enum type.
    MinThe minimum enum value, default is enum_range<Enum>::min.
    MaxThe maximum enum value, default is enum_range<Enum>::max.
    +
    +
    +
    Parameters
    + + +
    valueThe integer value to cast.
    +
    +
    +
    Returns
    An optional enum value.
    + +
    +
    + +

    ◆ enum_name()

    + +
    +
    +
    +template<int Min, int Max, typename Enum >
    + + + + + +
    + + + + + + + +
    MGUTILITY_CNSTXPR auto mgutility::enum_name (Enum e) -> detail::string_or_view_t<Enum> +
    +
    +noexcept
    +
    + +

    Gets the name of an enum value.

    +
    Template Parameters
    + + + + +
    MinThe minimum enum value.
    MaxThe maximum enum value.
    EnumThe enum type.
    +
    +
    +
    Parameters
    + + +
    eThe enum value.
    +
    +
    +
    Returns
    A string view or string representing the name of the enum value.
    +
    Template Parameters
    + + + + +
    EnumThe enum type.
    MinThe minimum enum value, default is enum_range<Enum>::min.
    MaxThe maximum enum value, default is enum_range<Enum>::max.
    +
    +
    +
    Parameters
    + + +
    eThe enum value.
    +
    +
    +
    Returns
    A string view or string representing the name of the enum value.
    + +
    +
    + +

    ◆ enum_to_underlying()

    + +
    +
    +
    +template<typename Enum >
    + + + + + +
    + + + + + + + +
    constexpr auto mgutility::enum_to_underlying (Enum e) -> detail::underlying_type_t<Enum> +
    +
    +constexprnoexcept
    +
    + +

    Converts an enum value to its underlying integer value.

    +
    Template Parameters
    + + +
    EnumThe enum type.
    +
    +
    +
    Parameters
    + + +
    eThe enum value.
    +
    +
    +
    Returns
    The underlying integer value of the enum.
    + +
    +
    + +

    ◆ to_enum()

    + +
    +
    +
    +template<typename Enum , int Min = enum_range<Enum>::min, int Max = enum_range<Enum>::max, detail::enable_if_t<!detail::has_bit_or< Enum >::value, bool > = true>
    + + + + + +
    + + + + + + + +
    MGUTILITY_CNSTXPR auto mgutility::to_enum (mgutility::string_view str) -> mgutility::optional<Enum> +
    +
    +noexcept
    +
    + +

    Converts a string to an enum value.

    +

    Converts a string to an enum bitmask value.

    +
    Template Parameters
    + + + + +
    EnumThe enum type.
    MinThe minimum enum value, default is enum_range<Enum>::min.
    MaxThe maximum enum value, default is enum_range<Enum>::max.
    +
    +
    +
    Parameters
    + + +
    strThe string view representing the enum name.
    +
    +
    +
    Returns
    An optional enum value.
    +
    Template Parameters
    + + + + +
    EnumThe enum type.
    MinThe minimum enum value, default is enum_range<Enum>::min.
    MaxThe maximum enum value, default is enum_range<Enum>::max.
    +
    +
    +
    Parameters
    + + +
    strThe string view representing the enum name.
    +
    +
    +
    Returns
    An optional enum bitmask value.
    + +
    +
    +
    + + + + diff --git a/git-main/namespaces.html b/git-main/namespaces.html new file mode 100644 index 0000000..511fe4c --- /dev/null +++ b/git-main/namespaces.html @@ -0,0 +1,99 @@ + + + + + + + + + enum_name: Namespace List + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Namespace List
    +
    +
    +
    Here is a list of all documented namespaces with brief descriptions:
    +
    [detail level 12]
    + + + + + + + + + +
     NmgutilityChecks for MSVC compiler version
     Cbad_optional_accessException thrown when accessing an empty optional
     Cbasic_string_viewA basic string view class template
     Cenum_for_eachA class template for iterating over enum values
     Cenum_rangeProvides the range for an enumeration type
     Cenum_range< color >
     Cenum_range< rgb_color >
     Cnullopt_tRepresents a null optional
     CoptionalA class template that provides optional (nullable) objects
    +
    +
    + + + + diff --git a/git-main/nav_f.png b/git-main/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/git-main/nav_fd.png b/git-main/nav_fd.png new file mode 100644 index 0000000000000000000000000000000000000000..032fbdd4c54f54fa9a2e6423b94ef4b2ebdfaceb GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQU#tajv*C{Z|C~*H7f|XvG1G8 zt7aS*L7xwMeS}!z6R#{C5tIw-s~AJ==F^i}x3XyJseHR@yF& zerFf(Zf;Dd{+(0lDIROL@Sj-Ju2JQ8&-n%4%q?>|^bShc&lR?}7HeMo@BDl5N(aHY Uj$gdr1MOz;boFyt=akR{0D!zeaR2}S literal 0 HcmV?d00001 diff --git a/git-main/nav_g.png b/git-main/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL6W-eg#Jd_@e6*DPn)w;=|1H}Zvm9l6xXXB%>yL=NQU;mg M>FVdQ&MBb@0Bdt1Qvd(} literal 0 HcmV?d00001 diff --git a/git-main/open.png b/git-main/open.png new file mode 100644 index 0000000000000000000000000000000000000000..30f75c7efe2dd0c9e956e35b69777a02751f048b GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + + + + enum_name: /home/runner/work/enum_name/enum_name/include/mgutility/std/optional.hpp Source File + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    optional.hpp
    +
    +
    +
    1/*
    +
    2MIT License
    +
    3
    +
    4Copyright (c) 2024 mguludag
    +
    5
    +
    6Permission is hereby granted, free of charge, to any person obtaining a copy
    +
    7of this software and associated documentation files (the "Software"), to deal
    +
    8in the Software without restriction, including without limitation the rights
    +
    9to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +
    10copies of the Software, and to permit persons to whom the Software is
    +
    11furnished to do so, subject to the following conditions:
    +
    12
    +
    13The above copyright notice and this permission notice shall be included in all
    +
    14copies or substantial portions of the Software.
    +
    15
    +
    16THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +
    17IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +
    18FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +
    19AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +
    20LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +
    21OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +
    22SOFTWARE.
    +
    23*/
    +
    24
    +
    25#ifndef DETAIL_OPTIONAL_HPP
    +
    26#define DETAIL_OPTIONAL_HPP
    +
    27
    + +
    29#include "mgutility/reflection/detail/meta.hpp"
    +
    30
    +
    31#include <exception>
    +
    32
    +
    33#if MGUTILITY_CPLUSPLUS >= 201703L
    +
    34#include <optional>
    +
    35#endif
    +
    36
    +
    37namespace mgutility
    +
    38{
    +
    39
    +
    40#if MGUTILITY_CPLUSPLUS < 201703L
    +
    41
    +
    +
    45 struct bad_optional_access : public std::exception
    +
    46 {
    +
    52 const char *what() const noexcept { return "optional has no value"; }
    +
    53 };
    +
    +
    54
    +
    55 struct nullopt_t;
    +
    56
    +
    62 template <typename T>
    +
    + +
    64 {
    +
    65 public:
    +
    +
    69 MGUTILITY_CNSTXPR inline optional(nullopt_t &)
    +
    70 : dummy_{0}, has_value_{false} {}
    +
    +
    71
    +
    75 MGUTILITY_CNSTXPR inline optional() : dummy_{0}, has_value_{false} {}
    +
    76
    +
    83 template <typename... Args>
    +
    +
    84 MGUTILITY_CNSTXPR inline optional(Args &&...args)
    +
    85 : value_{T{std::forward<Args>(args)...}}, has_value_{true} {}
    +
    +
    86
    +
    +
    92 MGUTILITY_CNSTXPR inline optional(T &&value)
    +
    93 : value_{value}, has_value_{true} {}
    +
    +
    94
    +
    +
    100 MGUTILITY_CNSTXPR inline optional(const optional &other)
    +
    101 : value_{other.value_}, has_value_{other.has_value_} {}
    +
    +
    102
    +
    +
    108 MGUTILITY_CNSTXPR inline optional(optional &&other)
    +
    109 : value_{other.value_}, has_value_{other.has_value_}
    +
    110 {
    +
    111 other.reset();
    +
    112 }
    +
    +
    113
    +
    117 inline ~optional() { has_value_ = false; }
    +
    118
    +
    +
    125 MGUTILITY_CNSTXPR inline optional &operator=(const optional &other)
    +
    126 {
    +
    127 value_ = other.value_;
    +
    128 has_value_ = other.has_value_;
    +
    129 return *this;
    +
    130 }
    +
    +
    131
    +
    +
    138 MGUTILITY_CNSTXPR inline optional &operator=(optional &&other)
    +
    139 {
    +
    140 value_ = other.value_;
    +
    141 has_value_ = other.has_value_;
    +
    142 other.reset();
    +
    143 return *this;
    +
    144 }
    +
    +
    145
    +
    +
    151 MGUTILITY_CNSTXPR inline void swap(optional &&other)
    +
    152 {
    +
    153 auto val = std::move(other.value_);
    +
    154 other.value_ = std::move(value_);
    +
    155 value_ = std::move(val);
    +
    156
    +
    157 auto hval = std::move(other.has_value_);
    +
    158 other.has_value_ = std::move(has_value_);
    +
    159 has_value_ = std::move(hval);
    +
    160 }
    +
    +
    161
    +
    167 MGUTILITY_CNSTXPR inline T &operator*() { return value_; }
    +
    168
    +
    174 MGUTILITY_CNSTXPR inline T &operator*() const { return value_; }
    +
    175
    +
    +
    182 MGUTILITY_CNSTXPR inline T &value()
    +
    183 {
    +
    184 if (!has_value_)
    +
    185 throw bad_optional_access();
    +
    186 return value_;
    +
    187 }
    +
    +
    188
    +
    +
    195 MGUTILITY_CNSTXPR inline T &value() const
    +
    196 {
    +
    197 if (!has_value_)
    +
    198 throw bad_optional_access();
    +
    199 return value_;
    +
    200 }
    +
    +
    201
    +
    +
    208 MGUTILITY_CNSTXPR inline T value_or(T &&value)
    +
    209 {
    +
    210 return has_value_ ? value_ : value;
    +
    211 }
    +
    +
    212
    +
    +
    219 MGUTILITY_CNSTXPR inline T value_or(T &&value) const
    +
    220 {
    +
    221 return has_value_ ? value_ : value;
    +
    222 }
    +
    +
    223
    +
    +
    230 MGUTILITY_CNSTXPR inline T value_or(const T &value)
    +
    231 {
    +
    232 return has_value_ ? value_ : value;
    +
    233 }
    +
    +
    234
    +
    +
    241 MGUTILITY_CNSTXPR inline T value_or(const T &value) const
    +
    242 {
    +
    243 return has_value_ ? value_ : value;
    +
    244 }
    +
    +
    245
    +
    +
    251 MGUTILITY_CNSTXPR inline void emplace(T value)
    +
    252 {
    +
    253 value_ = std::move(value);
    +
    254 has_value_ = true;
    +
    255 }
    +
    +
    256
    +
    263 template <typename... Args>
    +
    +
    264 MGUTILITY_CNSTXPR inline void emplace(Args &&...args)
    +
    265 {
    +
    266 value_ = std::move(T{std::forward<Args>(args)...});
    +
    267 has_value_ = true;
    +
    268 }
    +
    +
    269
    +
    275 MGUTILITY_CNSTXPR inline bool has_value() const { return has_value_; }
    +
    276
    +
    280 template <typename U = T,
    + +
    +
    282 MGUTILITY_CNSTXPR inline void reset()
    +
    283 {
    +
    284 value_ = T{};
    +
    285 has_value_ = false;
    +
    286 }
    +
    +
    287
    +
    291 template <typename U = T,
    + +
    +
    293 MGUTILITY_CNSTXPR inline void reset()
    +
    294 {
    +
    295 value_.~T();
    +
    296 has_value_ = false;
    +
    297 }
    +
    +
    298
    +
    304 MGUTILITY_CNSTXPR operator bool() { return has_value_; }
    +
    305
    +
    306 private:
    +
    307 union
    +
    308 {
    +
    309 T value_;
    +
    310 char dummy_[sizeof(T)];
    +
    311 };
    +
    312 bool has_value_;
    +
    313 };
    +
    +
    314
    +
    + +
    319 {
    +
    326 template <typename T>
    +
    +
    327 MGUTILITY_CNSTXPR operator optional<T>()
    +
    328 {
    +
    329 return optional<T>{};
    +
    330 }
    +
    +
    331 };
    +
    +
    332
    + +
    337
    +
    338#else
    +
    344 template <typename T>
    +
    345 using optional = std::optional<T>;
    +
    346
    +
    350 inline constexpr auto nullopt{std::nullopt};
    +
    351
    +
    352#endif
    +
    353}
    +
    354
    +
    355#endif // DETAIL_OPTIONAL_HPP
    +
    A class template that provides optional (nullable) objects.
    Definition optional.hpp:64
    +
    MGUTILITY_CNSTXPR optional & operator=(optional &&other)
    Move assignment operator.
    Definition optional.hpp:138
    +
    MGUTILITY_CNSTXPR T value_or(T &&value) const
    Returns the stored value or a default value if empty (const version).
    Definition optional.hpp:219
    +
    MGUTILITY_CNSTXPR void emplace(Args &&...args)
    Constructs the value in-place with arguments.
    Definition optional.hpp:264
    +
    MGUTILITY_CNSTXPR optional(Args &&...args)
    Constructs an optional with a value.
    Definition optional.hpp:84
    +
    ~optional()
    Destructor.
    Definition optional.hpp:117
    +
    MGUTILITY_CNSTXPR optional & operator=(const optional &other)
    Copy assignment operator.
    Definition optional.hpp:125
    +
    MGUTILITY_CNSTXPR optional(T &&value)
    Constructs an optional with a value.
    Definition optional.hpp:92
    +
    MGUTILITY_CNSTXPR bool has_value() const
    Checks if the optional has a value.
    Definition optional.hpp:275
    +
    MGUTILITY_CNSTXPR T & operator*() const
    Dereferences the stored value (const version).
    Definition optional.hpp:174
    +
    MGUTILITY_CNSTXPR optional()
    Constructs an empty optional.
    Definition optional.hpp:75
    +
    MGUTILITY_CNSTXPR optional(optional &&other)
    Move constructor.
    Definition optional.hpp:108
    +
    MGUTILITY_CNSTXPR T & operator*()
    Dereferences the stored value.
    Definition optional.hpp:167
    +
    MGUTILITY_CNSTXPR optional(const optional &other)
    Copy constructor.
    Definition optional.hpp:100
    +
    MGUTILITY_CNSTXPR void reset()
    Resets the optional, making it empty.
    Definition optional.hpp:282
    +
    MGUTILITY_CNSTXPR optional(nullopt_t &)
    Constructs an empty optional.
    Definition optional.hpp:69
    +
    MGUTILITY_CNSTXPR void emplace(T value)
    Constructs the value in-place.
    Definition optional.hpp:251
    +
    MGUTILITY_CNSTXPR T & value() const
    Accesses the stored value (const version).
    Definition optional.hpp:195
    +
    MGUTILITY_CNSTXPR T & value()
    Accesses the stored value.
    Definition optional.hpp:182
    +
    MGUTILITY_CNSTXPR void swap(optional &&other)
    Swaps the contents of this optional with another.
    Definition optional.hpp:151
    +
    MGUTILITY_CNSTXPR T value_or(T &&value)
    Returns the stored value or a default value if empty.
    Definition optional.hpp:208
    +
    MGUTILITY_CNSTXPR T value_or(const T &value) const
    Returns the stored value or a default value if empty (const version).
    Definition optional.hpp:241
    +
    MGUTILITY_CNSTXPR T value_or(const T &value)
    Returns the stored value or a default value if empty.
    Definition optional.hpp:230
    +
    Defines macros for compiler and standard support detection.
    +
    Checks for MSVC compiler version.
    Definition enum_for_each.hpp:35
    +
    auto nullopt
    A global instance of nullopt_t to represent null optional.
    Definition optional.hpp:336
    +
    Exception thrown when accessing an empty optional.
    Definition optional.hpp:46
    +
    const char * what() const noexcept
    Returns the exception message.
    Definition optional.hpp:52
    +
    Represents a sequence of enumeration values.
    Definition meta.hpp:113
    +
    Represents a null optional.
    Definition optional.hpp:319
    +
    + + + + diff --git a/git-main/pages.html b/git-main/pages.html new file mode 100644 index 0000000..8186260 --- /dev/null +++ b/git-main/pages.html @@ -0,0 +1,91 @@ + + + + + + + + + enum_name: Related Pages + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Related Pages
    +
    +
    +
    Here is a list of all related documentation pages:
    + + +
     enum_name
    +
    +
    + + + + diff --git a/git-main/plus.svg b/git-main/plus.svg new file mode 100644 index 0000000..0752016 --- /dev/null +++ b/git-main/plus.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/git-main/plusd.svg b/git-main/plusd.svg new file mode 100644 index 0000000..0c65bfe --- /dev/null +++ b/git-main/plusd.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/git-main/search/all_0.js b/git-main/search/all_0.js new file mode 100644 index 0000000..562a4d3 --- /dev/null +++ b/git-main/search/all_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['a_20href_20https_3a_20godbolt_20org_20z_20rfewwkdh3_20try_20it_20a_0',['Example usage (<a href="https://godbolt.org/z/rfeWWKdh3" >try it!</a>)',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html#autotoc_md6',1,'']]] +]; diff --git a/git-main/search/all_1.js b/git-main/search/all_1.js new file mode 100644 index 0000000..724e9a3 --- /dev/null +++ b/git-main/search/all_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['bad_5foptional_5faccess_0',['bad_optional_access',['../structmgutility_1_1bad__optional__access.html',1,'mgutility']]], + ['basic_5fstring_5fview_1',['basic_string_view',['../classmgutility_1_1basic__string__view.html',1,'mgutility::basic_string_view< Char >'],['../classmgutility_1_1basic__string__view.html#a98047372022acfb78fbeb82ff7aa5190',1,'mgutility::basic_string_view::basic_string_view() noexcept'],['../classmgutility_1_1basic__string__view.html#a07cc48696b3095ed0b79327b3a423fe6',1,'mgutility::basic_string_view::basic_string_view(const Char *str) noexcept'],['../classmgutility_1_1basic__string__view.html#ac3d4a66987b79b36a6207a7d9c85a5ba',1,'mgutility::basic_string_view::basic_string_view(const Char *str, size_t len) noexcept'],['../classmgutility_1_1basic__string__view.html#a25e8d6ef98e904e1848fb80fe806b2db',1,'mgutility::basic_string_view::basic_string_view(const basic_string_view &other)'],['../classmgutility_1_1basic__string__view.html#a3bf92ec244076c7a71569d64bddc7e3e',1,'mgutility::basic_string_view::basic_string_view(basic_string_view &&other) noexcept']]], + ['begin_2',['begin',['../classmgutility_1_1enum__for__each.html#a1415f386351d4564317694ea55e29954',1,'mgutility::enum_for_each::begin()'],['../classmgutility_1_1basic__string__view.html#a7e457bc18a0dbd2958f740befdb9943d',1,'mgutility::basic_string_view::begin()']]] +]; diff --git a/git-main/search/all_10.js b/git-main/search/all_10.js new file mode 100644 index 0000000..fe0c860 --- /dev/null +++ b/git-main/search/all_10.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['to_5fenum_0',['to_enum',['../namespacemgutility.html#a47470bc6b087ab3ceab7c3873203a2eb',1,'mgutility']]], + ['try_20it_20a_1',['Example usage (<a href="https://godbolt.org/z/rfeWWKdh3" >try it!</a>)',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html#autotoc_md6',1,'']]], + ['type_2',['type',['../structmgutility_1_1detail_1_1enum__sequence__helper_3_01Enum_00_01Min_00_01Min_00_01Next_8_8_8_01_4.html#a7b17e3be2a8e0003e56e5fd8cbfa9524',1,'mgutility::detail::enum_sequence_helper< Enum, Min, Min, Next... >']]] +]; diff --git a/git-main/search/all_11.js b/git-main/search/all_11.js new file mode 100644 index 0000000..532c893 --- /dev/null +++ b/git-main/search/all_11.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['usage_20a_20href_20https_3a_20godbolt_20org_20z_20rfewwkdh3_20try_20it_20a_0',['Example usage (<a href="https://godbolt.org/z/rfeWWKdh3" >try it!</a>)',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html#autotoc_md6',1,'']]] +]; diff --git a/git-main/search/all_12.js b/git-main/search/all_12.js new file mode 100644 index 0000000..a7311cc --- /dev/null +++ b/git-main/search/all_12.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['value_0',['value',['../structmgutility_1_1detail_1_1is__scoped__enum.html#a7f124839c728583930588def94fbfec0',1,'mgutility::detail::is_scoped_enum::value'],['../classmgutility_1_1optional.html#ac1028387cac8311f37d30683aa0e6dee',1,'mgutility::optional::value()'],['../classmgutility_1_1optional.html#abc9fc767c073e865acbad79df5237bd1',1,'mgutility::optional::value() const']]], + ['value_5for_1',['value_or',['../classmgutility_1_1optional.html#acb65e681b1e5c84f0c00059a9e61903d',1,'mgutility::optional::value_or(T &&value)'],['../classmgutility_1_1optional.html#a14f3152ede420d3799dc3ec9f8ec1a10',1,'mgutility::optional::value_or(T &&value) const'],['../classmgutility_1_1optional.html#aee67dde557acbd11fe3c0a8455cab862',1,'mgutility::optional::value_or(const T &value)'],['../classmgutility_1_1optional.html#acf92119863dd7ae1cc5ae387151751b9',1,'mgutility::optional::value_or(const T &value) const']]] +]; diff --git a/git-main/search/all_13.js b/git-main/search/all_13.js new file mode 100644 index 0000000..112cc52 --- /dev/null +++ b/git-main/search/all_13.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['what_0',['what',['../structmgutility_1_1bad__optional__access.html#af3a7f794c94499a7660cfed0d3fed8dc',1,'mgutility::bad_optional_access']]], + ['with_20cmake_1',['Fetch library with CMake',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html#autotoc_md5',1,'']]] +]; diff --git a/git-main/search/all_14.js b/git-main/search/all_14.js new file mode 100644 index 0000000..8f21695 --- /dev/null +++ b/git-main/search/all_14.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['z_20rfewwkdh3_20try_20it_20a_0',['Example usage (<a href="https://godbolt.org/z/rfeWWKdh3" >try it!</a>)',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html#autotoc_md6',1,'']]] +]; diff --git a/git-main/search/all_15.js b/git-main/search/all_15.js new file mode 100644 index 0000000..d1b8aef --- /dev/null +++ b/git-main/search/all_15.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_7eoptional_0',['~optional',['../classmgutility_1_1optional.html#a2e1c20d05d40a957ee86318dc1558ff8',1,'mgutility::optional']]] +]; diff --git a/git-main/search/all_2.js b/git-main/search/all_2.js new file mode 100644 index 0000000..ff26795 --- /dev/null +++ b/git-main/search/all_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['cmake_0',['Fetch library with CMake',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html#autotoc_md5',1,'']]], + ['compilers_1',['Supported Compilers',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html#autotoc_md2',1,'']]] +]; diff --git a/git-main/search/all_3.js b/git-main/search/all_3.js new file mode 100644 index 0000000..e559cab --- /dev/null +++ b/git-main/search/all_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['data_0',['data',['../classmgutility_1_1basic__string__view.html#ab37f2035ecf1724d175b3b4a553b97ab',1,'mgutility::basic_string_view']]], + ['definitions_2ehpp_1',['definitions.hpp',['../definitions_8hpp.html',1,'']]] +]; diff --git a/git-main/search/all_4.js b/git-main/search/all_4.js new file mode 100644 index 0000000..86a8257 --- /dev/null +++ b/git-main/search/all_4.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['emplace_0',['emplace',['../classmgutility_1_1optional.html#aafd73c0d09db703e5e6a4e731b192ccb',1,'mgutility::optional::emplace(T value)'],['../classmgutility_1_1optional.html#a1c9693d3f4714f7dff5b56900450d2fd',1,'mgutility::optional::emplace(Args &&...args)']]], + ['empty_1',['empty',['../classmgutility_1_1basic__string__view.html#a37b876e4fd007b94772dd289b58a1bce',1,'mgutility::basic_string_view']]], + ['end_2',['end',['../classmgutility_1_1enum__for__each.html#a6ab0021b410129cbb2d45a21997bb9d5',1,'mgutility::enum_for_each::end()'],['../classmgutility_1_1basic__string__view.html#a0b623628e1fed88cd8f2489ec22782cd',1,'mgutility::basic_string_view::end()']]], + ['enum_5fcast_3',['enum_cast',['../namespacemgutility.html#a945fab3988ccb5de52589c67ee654e38',1,'mgutility']]], + ['enum_5ffor_5feach_4',['enum_for_each',['../classmgutility_1_1enum__for__each.html',1,'mgutility::enum_for_each< Enum >'],['../classmgutility_1_1enum__for__each.html#a136743f726f0af0b04c027dfa3ca08cc',1,'mgutility::enum_for_each::enum_for_each()']]], + ['enum_5fname_5',['enum_name',['../namespacemgutility.html#a56127482f9ec47f2b6600cfdab84af03',1,'mgutility::enum_name()'],['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html',1,'enum_name']]], + ['enum_5frange_6',['enum_range',['../structmgutility_1_1enum__range.html',1,'mgutility']]], + ['enum_5frange_3c_20color_20_3e_7',['enum_range< color >',['../structmgutility_1_1enum__range_3_01color_01_4.html',1,'mgutility']]], + ['enum_5frange_3c_20rgb_5fcolor_20_3e_8',['enum_range< rgb_color >',['../structmgutility_1_1enum__range_3_01rgb__color_01_4.html',1,'mgutility']]], + ['enum_5fsequence_9',['enum_sequence',['../structmgutility_1_1detail_1_1enum__sequence.html',1,'mgutility::detail']]], + ['enum_5fsequence_5fhelper_10',['enum_sequence_helper',['../structmgutility_1_1detail_1_1enum__sequence__helper.html',1,'mgutility::detail']]], + ['enum_5fsequence_5fhelper_3c_20enum_2c_20min_2c_20min_2c_20next_2e_2e_2e_20_3e_11',['enum_sequence_helper< Enum, Min, Min, Next... >',['../structmgutility_1_1detail_1_1enum__sequence__helper_3_01Enum_00_01Min_00_01Min_00_01Next_8_8_8_01_4.html',1,'mgutility::detail']]], + ['enum_5fto_5funderlying_12',['enum_to_underlying',['../namespacemgutility.html#a0434e4efb8b555e4f2ab34b000c8dd47',1,'mgutility']]], + ['enum_5ftype_13',['enum_type',['../structmgutility_1_1detail_1_1enum__type.html',1,'mgutility::detail']]], + ['example_20usage_20a_20href_20https_3a_20godbolt_20org_20z_20rfewwkdh3_20try_20it_20a_14',['Example usage (<a href="https://godbolt.org/z/rfeWWKdh3" >try it!</a>)',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html#autotoc_md6',1,'']]] +]; diff --git a/git-main/search/all_5.js b/git-main/search/all_5.js new file mode 100644 index 0000000..e32810d --- /dev/null +++ b/git-main/search/all_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['features_0',['Features',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html#autotoc_md3',1,'']]], + ['fetch_20library_20with_20cmake_1',['Fetch library with CMake',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html#autotoc_md5',1,'']]], + ['find_2',['find',['../classmgutility_1_1basic__string__view.html#a511d28b000ada097a6f4449266c2a018',1,'mgutility::basic_string_view']]] +]; diff --git a/git-main/search/all_6.js b/git-main/search/all_6.js new file mode 100644 index 0000000..f0af638 --- /dev/null +++ b/git-main/search/all_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['godbolt_20org_20z_20rfewwkdh3_20try_20it_20a_0',['Example usage (<a href="https://godbolt.org/z/rfeWWKdh3" >try it!</a>)',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html#autotoc_md6',1,'']]] +]; diff --git a/git-main/search/all_7.js b/git-main/search/all_7.js new file mode 100644 index 0000000..38e53db --- /dev/null +++ b/git-main/search/all_7.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['has_5fbit_5for_0',['has_bit_or',['../structmgutility_1_1detail_1_1has__bit__or.html',1,'mgutility::detail']]], + ['has_5fbit_5for_3c_20t_2c_20decltype_28_28t_7b_7d_7ct_7b_7d_29_2c_20void_28_29_29_3e_1',['has_bit_or< T, decltype((T{}|T{}), void())>',['../structmgutility_1_1detail_1_1has__bit__or_3_01T_00_01decltype_07_07T_02_03_7T_02_03_08_00_01void_07_08_08_4.html',1,'mgutility::detail']]], + ['has_5fvalue_2',['has_value',['../classmgutility_1_1optional.html#a444270b6571ff545b4c2f354eb74eaa1',1,'mgutility::optional']]], + ['href_20https_3a_20godbolt_20org_20z_20rfewwkdh3_20try_20it_20a_3',['Example usage (<a href="https://godbolt.org/z/rfeWWKdh3" >try it!</a>)',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html#autotoc_md6',1,'']]], + ['https_3a_20godbolt_20org_20z_20rfewwkdh3_20try_20it_20a_4',['Example usage (<a href="https://godbolt.org/z/rfeWWKdh3" >try it!</a>)',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html#autotoc_md6',1,'']]] +]; diff --git a/git-main/search/all_8.js b/git-main/search/all_8.js new file mode 100644 index 0000000..e09b90f --- /dev/null +++ b/git-main/search/all_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['is_5fscoped_5fenum_0',['is_scoped_enum',['../structmgutility_1_1detail_1_1is__scoped__enum.html',1,'mgutility::detail']]], + ['it_20a_1',['Example usage (<a href="https://godbolt.org/z/rfeWWKdh3" >try it!</a>)',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html#autotoc_md6',1,'']]] +]; diff --git a/git-main/search/all_9.js b/git-main/search/all_9.js new file mode 100644 index 0000000..cbd73f0 --- /dev/null +++ b/git-main/search/all_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['library_20with_20cmake_0',['Fetch library with CMake',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html#autotoc_md5',1,'']]], + ['limitations_1',['Limitations',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html#autotoc_md4',1,'']]] +]; diff --git a/git-main/search/all_a.js b/git-main/search/all_a.js new file mode 100644 index 0000000..7e222e5 --- /dev/null +++ b/git-main/search/all_a.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['main_20page_0',['Main page',['../index.html',1,'']]], + ['mgutility_1',['mgutility',['../namespacemgutility.html',1,'']]], + ['mgutility_5fcnstevl_2',['MGUTILITY_CNSTEVL',['../definitions_8hpp.html#ae79da58f317cf12394dd7e76dbbe832c',1,'definitions.hpp']]], + ['mgutility_5fcnstxpr_5fclang_5fwa_3',['MGUTILITY_CNSTXPR_CLANG_WA',['../definitions_8hpp.html#ad7d158b2132888de05e72cdd28db7e11',1,'definitions.hpp']]], + ['mgutility_5fcplusplus_4',['MGUTILITY_CPLUSPLUS',['../definitions_8hpp.html#ad1e229b7b0500b2c1044b9816307fc02',1,'definitions.hpp']]] +]; diff --git a/git-main/search/all_b.js b/git-main/search/all_b.js new file mode 100644 index 0000000..9e1984b --- /dev/null +++ b/git-main/search/all_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['name_0',['name',['../structmgutility_1_1detail_1_1enum__type.html#abee017c1717fd3bf5c31b2c6fecd82fd',1,'mgutility::detail::enum_type::name() noexcept -> mgutility::string_view'],['../structmgutility_1_1detail_1_1enum__type.html#abee017c1717fd3bf5c31b2c6fecd82fd',1,'mgutility::detail::enum_type::name() noexcept -> mgutility::string_view']]], + ['nullopt_1',['nullopt',['../namespacemgutility.html#a2472ad38d80978a9a8c3150e0e2ba43c',1,'mgutility']]], + ['nullopt_5ft_2',['nullopt_t',['../structmgutility_1_1nullopt__t.html',1,'mgutility']]] +]; diff --git a/git-main/search/all_c.js b/git-main/search/all_c.js new file mode 100644 index 0000000..1b6148c --- /dev/null +++ b/git-main/search/all_c.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['operator_20bool_0',['operator bool',['../classmgutility_1_1optional.html#ab0f2e6f47e7c8eb9b1c4bd553df6eb63',1,'mgutility::optional']]], + ['operator_20optional_3c_20t_20_3e_1',['operator optional< T >',['../structmgutility_1_1nullopt__t.html#a0239dc56aa60ab9eb05646f66814c8b5',1,'mgutility::nullopt_t']]], + ['operator_20std_3a_3astring_2',['operator std::string',['../classmgutility_1_1basic__string__view.html#a88ab597eb09f775835b2b1012e4738cd',1,'mgutility::basic_string_view::string()'],['../classmgutility_1_1basic__string__view.html#a25b10409abab3fcb1152c301c5e2cc68',1,'mgutility::basic_string_view::string() const']]], + ['operator_21_3d_3',['operator!=',['../classmgutility_1_1basic__string__view.html#a1d20761329e2d939ab77bbe3e91570d3',1,'mgutility::basic_string_view::operator!='],['../classmgutility_1_1basic__string__view.html#adac0147a9db1ea20951f75cd3664fcda',1,'mgutility::basic_string_view::operator!=']]], + ['operator_2a_4',['operator*',['../classmgutility_1_1optional.html#a86530a0954753d4f81a55364d631bc2a',1,'mgutility::optional::operator*()'],['../classmgutility_1_1optional.html#a5abeb6aa1847ff267211454a9f3f7f50',1,'mgutility::optional::operator*() const']]], + ['operator_3c_3c_5',['operator<<',['../classmgutility_1_1basic__string__view.html#a3a539c3eb984671d1bdbb035960cb9d6',1,'mgutility::basic_string_view']]], + ['operator_3d_6',['operator=',['../classmgutility_1_1optional.html#a37d1cdc3ee17e9b0ad6f51f196377c6f',1,'mgutility::optional::operator=(const optional &other)'],['../classmgutility_1_1optional.html#a12c470b6074a02e2e05b8f3d99723bdc',1,'mgutility::optional::operator=(optional &&other)'],['../classmgutility_1_1basic__string__view.html#a5dd4b45964ba415e1bc756dbd16e086d',1,'mgutility::basic_string_view::operator=(const basic_string_view &other) noexcept'],['../classmgutility_1_1basic__string__view.html#aebc213a351e10cdb8fea03c5a06d6704',1,'mgutility::basic_string_view::operator=(basic_string_view &&other) noexcept']]], + ['operator_3d_3d_7',['operator==',['../classmgutility_1_1basic__string__view.html#a4f78e96e1c8cd701e36367971c7f112b',1,'mgutility::basic_string_view::operator=='],['../classmgutility_1_1basic__string__view.html#a4e033e35d453263fd34724b2b9634581',1,'mgutility::basic_string_view::operator==']]], + ['operator_5b_5d_8',['operator[]',['../classmgutility_1_1basic__string__view.html#a78d80b32f442c1c0994af67cb1a42e1d',1,'mgutility::basic_string_view']]], + ['optional_9',['optional',['../classmgutility_1_1optional.html',1,'mgutility::optional< T >'],['../classmgutility_1_1optional.html#aaf01ec86b3bd0649e824cb262bf238ba',1,'mgutility::optional::optional(nullopt_t &)'],['../classmgutility_1_1optional.html#a6dfc2e2dd5035fe8f4e2ea2d499ff0c6',1,'mgutility::optional::optional()'],['../classmgutility_1_1optional.html#a1f9831c9b189a71acafcdb2b4ebba70f',1,'mgutility::optional::optional(Args &&...args)'],['../classmgutility_1_1optional.html#a42acc3e5b153bece49622510a3b66ade',1,'mgutility::optional::optional(T &&value)'],['../classmgutility_1_1optional.html#a8e42e264b59aeb9c14817895ed617c42',1,'mgutility::optional::optional(const optional &other)'],['../classmgutility_1_1optional.html#a836543069b1c3244050f6a39c0118c44',1,'mgutility::optional::optional(optional &&other)']]], + ['org_20z_20rfewwkdh3_20try_20it_20a_10',['Example usage (<a href="https://godbolt.org/z/rfeWWKdh3" >try it!</a>)',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html#autotoc_md6',1,'']]] +]; diff --git a/git-main/search/all_d.js b/git-main/search/all_d.js new file mode 100644 index 0000000..35ac3bf --- /dev/null +++ b/git-main/search/all_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['page_0',['Main page',['../index.html',1,'']]] +]; diff --git a/git-main/search/all_e.js b/git-main/search/all_e.js new file mode 100644 index 0000000..4b6b053 --- /dev/null +++ b/git-main/search/all_e.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['reset_0',['reset',['../classmgutility_1_1optional.html#aa5d9dc1c598a5735584b903dcf98c9f4',1,'mgutility::optional::reset()'],['../classmgutility_1_1optional.html#aa5d9dc1c598a5735584b903dcf98c9f4',1,'mgutility::optional::reset()']]], + ['rfewwkdh3_20try_20it_20a_1',['Example usage (<a href="https://godbolt.org/z/rfeWWKdh3" >try it!</a>)',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html#autotoc_md6',1,'']]], + ['rfind_2',['rfind',['../classmgutility_1_1basic__string__view.html#aa2ee34f07ee7ec37344898d4f5ea57f9',1,'mgutility::basic_string_view']]] +]; diff --git a/git-main/search/all_f.js b/git-main/search/all_f.js new file mode 100644 index 0000000..fbafdde --- /dev/null +++ b/git-main/search/all_f.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['size_0',['size',['../classmgutility_1_1enum__for__each.html#a0d833b4ee26998c4373aee17be12cd90',1,'mgutility::enum_for_each::size()'],['../classmgutility_1_1basic__string__view.html#a26e96c7b63f54ccd9306e3a4ecf5b336',1,'mgutility::basic_string_view::size() const noexcept']]], + ['substr_1',['substr',['../classmgutility_1_1basic__string__view.html#afaa73ee06ad76de37e100e06f98822ee',1,'mgutility::basic_string_view']]], + ['supported_20compilers_2',['Supported Compilers',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html#autotoc_md2',1,'']]], + ['swap_3',['swap',['../classmgutility_1_1optional.html#ac4a977a0b086414df1567343fe6f6f0a',1,'mgutility::optional']]] +]; diff --git a/git-main/search/classes_0.js b/git-main/search/classes_0.js new file mode 100644 index 0000000..9f7c12e --- /dev/null +++ b/git-main/search/classes_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['bad_5foptional_5faccess_0',['bad_optional_access',['../structmgutility_1_1bad__optional__access.html',1,'mgutility']]], + ['basic_5fstring_5fview_1',['basic_string_view',['../classmgutility_1_1basic__string__view.html',1,'mgutility']]] +]; diff --git a/git-main/search/classes_1.js b/git-main/search/classes_1.js new file mode 100644 index 0000000..174baca --- /dev/null +++ b/git-main/search/classes_1.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['enum_5ffor_5feach_0',['enum_for_each',['../classmgutility_1_1enum__for__each.html',1,'mgutility']]], + ['enum_5frange_1',['enum_range',['../structmgutility_1_1enum__range.html',1,'mgutility']]], + ['enum_5frange_3c_20color_20_3e_2',['enum_range< color >',['../structmgutility_1_1enum__range_3_01color_01_4.html',1,'mgutility']]], + ['enum_5frange_3c_20rgb_5fcolor_20_3e_3',['enum_range< rgb_color >',['../structmgutility_1_1enum__range_3_01rgb__color_01_4.html',1,'mgutility']]], + ['enum_5fsequence_4',['enum_sequence',['../structmgutility_1_1detail_1_1enum__sequence.html',1,'mgutility::detail']]], + ['enum_5fsequence_5fhelper_5',['enum_sequence_helper',['../structmgutility_1_1detail_1_1enum__sequence__helper.html',1,'mgutility::detail']]], + ['enum_5fsequence_5fhelper_3c_20enum_2c_20min_2c_20min_2c_20next_2e_2e_2e_20_3e_6',['enum_sequence_helper< Enum, Min, Min, Next... >',['../structmgutility_1_1detail_1_1enum__sequence__helper_3_01Enum_00_01Min_00_01Min_00_01Next_8_8_8_01_4.html',1,'mgutility::detail']]], + ['enum_5ftype_7',['enum_type',['../structmgutility_1_1detail_1_1enum__type.html',1,'mgutility::detail']]] +]; diff --git a/git-main/search/classes_2.js b/git-main/search/classes_2.js new file mode 100644 index 0000000..12a06bf --- /dev/null +++ b/git-main/search/classes_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['has_5fbit_5for_0',['has_bit_or',['../structmgutility_1_1detail_1_1has__bit__or.html',1,'mgutility::detail']]], + ['has_5fbit_5for_3c_20t_2c_20decltype_28_28t_7b_7d_7ct_7b_7d_29_2c_20void_28_29_29_3e_1',['has_bit_or< T, decltype((T{}|T{}), void())>',['../structmgutility_1_1detail_1_1has__bit__or_3_01T_00_01decltype_07_07T_02_03_7T_02_03_08_00_01void_07_08_08_4.html',1,'mgutility::detail']]] +]; diff --git a/git-main/search/classes_3.js b/git-main/search/classes_3.js new file mode 100644 index 0000000..d292d63 --- /dev/null +++ b/git-main/search/classes_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['is_5fscoped_5fenum_0',['is_scoped_enum',['../structmgutility_1_1detail_1_1is__scoped__enum.html',1,'mgutility::detail']]] +]; diff --git a/git-main/search/classes_4.js b/git-main/search/classes_4.js new file mode 100644 index 0000000..674dfc3 --- /dev/null +++ b/git-main/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['nullopt_5ft_0',['nullopt_t',['../structmgutility_1_1nullopt__t.html',1,'mgutility']]] +]; diff --git a/git-main/search/classes_5.js b/git-main/search/classes_5.js new file mode 100644 index 0000000..19bde48 --- /dev/null +++ b/git-main/search/classes_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['optional_0',['optional',['../classmgutility_1_1optional.html',1,'mgutility']]] +]; diff --git a/git-main/search/close.svg b/git-main/search/close.svg new file mode 100644 index 0000000..337d6cc --- /dev/null +++ b/git-main/search/close.svg @@ -0,0 +1,18 @@ + + + + + + diff --git a/git-main/search/defines_0.js b/git-main/search/defines_0.js new file mode 100644 index 0000000..e018daa --- /dev/null +++ b/git-main/search/defines_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['mgutility_5fcnstevl_0',['MGUTILITY_CNSTEVL',['../definitions_8hpp.html#ae79da58f317cf12394dd7e76dbbe832c',1,'definitions.hpp']]], + ['mgutility_5fcnstxpr_5fclang_5fwa_1',['MGUTILITY_CNSTXPR_CLANG_WA',['../definitions_8hpp.html#ad7d158b2132888de05e72cdd28db7e11',1,'definitions.hpp']]], + ['mgutility_5fcplusplus_2',['MGUTILITY_CPLUSPLUS',['../definitions_8hpp.html#ad1e229b7b0500b2c1044b9816307fc02',1,'definitions.hpp']]] +]; diff --git a/git-main/search/files_0.js b/git-main/search/files_0.js new file mode 100644 index 0000000..f341b00 --- /dev/null +++ b/git-main/search/files_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['definitions_2ehpp_0',['definitions.hpp',['../definitions_8hpp.html',1,'']]] +]; diff --git a/git-main/search/functions_0.js b/git-main/search/functions_0.js new file mode 100644 index 0000000..492a23c --- /dev/null +++ b/git-main/search/functions_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['basic_5fstring_5fview_0',['basic_string_view',['../classmgutility_1_1basic__string__view.html#a98047372022acfb78fbeb82ff7aa5190',1,'mgutility::basic_string_view::basic_string_view() noexcept'],['../classmgutility_1_1basic__string__view.html#a07cc48696b3095ed0b79327b3a423fe6',1,'mgutility::basic_string_view::basic_string_view(const Char *str) noexcept'],['../classmgutility_1_1basic__string__view.html#ac3d4a66987b79b36a6207a7d9c85a5ba',1,'mgutility::basic_string_view::basic_string_view(const Char *str, size_t len) noexcept'],['../classmgutility_1_1basic__string__view.html#a25e8d6ef98e904e1848fb80fe806b2db',1,'mgutility::basic_string_view::basic_string_view(const basic_string_view &other)'],['../classmgutility_1_1basic__string__view.html#a3bf92ec244076c7a71569d64bddc7e3e',1,'mgutility::basic_string_view::basic_string_view(basic_string_view &&other) noexcept']]], + ['begin_1',['begin',['../classmgutility_1_1enum__for__each.html#a1415f386351d4564317694ea55e29954',1,'mgutility::enum_for_each::begin()'],['../classmgutility_1_1basic__string__view.html#a7e457bc18a0dbd2958f740befdb9943d',1,'mgutility::basic_string_view::begin()']]] +]; diff --git a/git-main/search/functions_1.js b/git-main/search/functions_1.js new file mode 100644 index 0000000..322f6e0 --- /dev/null +++ b/git-main/search/functions_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['data_0',['data',['../classmgutility_1_1basic__string__view.html#ab37f2035ecf1724d175b3b4a553b97ab',1,'mgutility::basic_string_view']]] +]; diff --git a/git-main/search/functions_2.js b/git-main/search/functions_2.js new file mode 100644 index 0000000..3eecd26 --- /dev/null +++ b/git-main/search/functions_2.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['emplace_0',['emplace',['../classmgutility_1_1optional.html#aafd73c0d09db703e5e6a4e731b192ccb',1,'mgutility::optional::emplace(T value)'],['../classmgutility_1_1optional.html#a1c9693d3f4714f7dff5b56900450d2fd',1,'mgutility::optional::emplace(Args &&...args)']]], + ['empty_1',['empty',['../classmgutility_1_1basic__string__view.html#a37b876e4fd007b94772dd289b58a1bce',1,'mgutility::basic_string_view']]], + ['end_2',['end',['../classmgutility_1_1enum__for__each.html#a6ab0021b410129cbb2d45a21997bb9d5',1,'mgutility::enum_for_each::end()'],['../classmgutility_1_1basic__string__view.html#a0b623628e1fed88cd8f2489ec22782cd',1,'mgutility::basic_string_view::end()']]], + ['enum_5fcast_3',['enum_cast',['../namespacemgutility.html#a945fab3988ccb5de52589c67ee654e38',1,'mgutility']]], + ['enum_5ffor_5feach_4',['enum_for_each',['../classmgutility_1_1enum__for__each.html#a136743f726f0af0b04c027dfa3ca08cc',1,'mgutility::enum_for_each']]], + ['enum_5fname_5',['enum_name',['../namespacemgutility.html#a56127482f9ec47f2b6600cfdab84af03',1,'mgutility']]], + ['enum_5fto_5funderlying_6',['enum_to_underlying',['../namespacemgutility.html#a0434e4efb8b555e4f2ab34b000c8dd47',1,'mgutility']]] +]; diff --git a/git-main/search/functions_3.js b/git-main/search/functions_3.js new file mode 100644 index 0000000..475b67d --- /dev/null +++ b/git-main/search/functions_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['find_0',['find',['../classmgutility_1_1basic__string__view.html#a511d28b000ada097a6f4449266c2a018',1,'mgutility::basic_string_view']]] +]; diff --git a/git-main/search/functions_4.js b/git-main/search/functions_4.js new file mode 100644 index 0000000..1ec63ba --- /dev/null +++ b/git-main/search/functions_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['has_5fvalue_0',['has_value',['../classmgutility_1_1optional.html#a444270b6571ff545b4c2f354eb74eaa1',1,'mgutility::optional']]] +]; diff --git a/git-main/search/functions_5.js b/git-main/search/functions_5.js new file mode 100644 index 0000000..293876b --- /dev/null +++ b/git-main/search/functions_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['name_0',['name',['../structmgutility_1_1detail_1_1enum__type.html#abee017c1717fd3bf5c31b2c6fecd82fd',1,'mgutility::detail::enum_type::name() noexcept -> mgutility::string_view'],['../structmgutility_1_1detail_1_1enum__type.html#abee017c1717fd3bf5c31b2c6fecd82fd',1,'mgutility::detail::enum_type::name() noexcept -> mgutility::string_view']]] +]; diff --git a/git-main/search/functions_6.js b/git-main/search/functions_6.js new file mode 100644 index 0000000..ed0d5c4 --- /dev/null +++ b/git-main/search/functions_6.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['operator_20bool_0',['operator bool',['../classmgutility_1_1optional.html#ab0f2e6f47e7c8eb9b1c4bd553df6eb63',1,'mgutility::optional']]], + ['operator_20optional_3c_20t_20_3e_1',['operator optional< T >',['../structmgutility_1_1nullopt__t.html#a0239dc56aa60ab9eb05646f66814c8b5',1,'mgutility::nullopt_t']]], + ['operator_20std_3a_3astring_2',['operator std::string',['../classmgutility_1_1basic__string__view.html#a88ab597eb09f775835b2b1012e4738cd',1,'mgutility::basic_string_view::string()'],['../classmgutility_1_1basic__string__view.html#a25b10409abab3fcb1152c301c5e2cc68',1,'mgutility::basic_string_view::string() const']]], + ['operator_2a_3',['operator*',['../classmgutility_1_1optional.html#a86530a0954753d4f81a55364d631bc2a',1,'mgutility::optional::operator*()'],['../classmgutility_1_1optional.html#a5abeb6aa1847ff267211454a9f3f7f50',1,'mgutility::optional::operator*() const']]], + ['operator_3d_4',['operator=',['../classmgutility_1_1optional.html#a37d1cdc3ee17e9b0ad6f51f196377c6f',1,'mgutility::optional::operator=(const optional &other)'],['../classmgutility_1_1optional.html#a12c470b6074a02e2e05b8f3d99723bdc',1,'mgutility::optional::operator=(optional &&other)'],['../classmgutility_1_1basic__string__view.html#a5dd4b45964ba415e1bc756dbd16e086d',1,'mgutility::basic_string_view::operator=(const basic_string_view &other) noexcept'],['../classmgutility_1_1basic__string__view.html#aebc213a351e10cdb8fea03c5a06d6704',1,'mgutility::basic_string_view::operator=(basic_string_view &&other) noexcept']]], + ['operator_5b_5d_5',['operator[]',['../classmgutility_1_1basic__string__view.html#a78d80b32f442c1c0994af67cb1a42e1d',1,'mgutility::basic_string_view']]], + ['optional_6',['optional',['../classmgutility_1_1optional.html#aaf01ec86b3bd0649e824cb262bf238ba',1,'mgutility::optional::optional(nullopt_t &)'],['../classmgutility_1_1optional.html#a6dfc2e2dd5035fe8f4e2ea2d499ff0c6',1,'mgutility::optional::optional()'],['../classmgutility_1_1optional.html#a1f9831c9b189a71acafcdb2b4ebba70f',1,'mgutility::optional::optional(Args &&...args)'],['../classmgutility_1_1optional.html#a42acc3e5b153bece49622510a3b66ade',1,'mgutility::optional::optional(T &&value)'],['../classmgutility_1_1optional.html#a8e42e264b59aeb9c14817895ed617c42',1,'mgutility::optional::optional(const optional &other)'],['../classmgutility_1_1optional.html#a836543069b1c3244050f6a39c0118c44',1,'mgutility::optional::optional(optional &&other)']]] +]; diff --git a/git-main/search/functions_7.js b/git-main/search/functions_7.js new file mode 100644 index 0000000..84e3316 --- /dev/null +++ b/git-main/search/functions_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['reset_0',['reset',['../classmgutility_1_1optional.html#aa5d9dc1c598a5735584b903dcf98c9f4',1,'mgutility::optional::reset()'],['../classmgutility_1_1optional.html#aa5d9dc1c598a5735584b903dcf98c9f4',1,'mgutility::optional::reset()']]], + ['rfind_1',['rfind',['../classmgutility_1_1basic__string__view.html#aa2ee34f07ee7ec37344898d4f5ea57f9',1,'mgutility::basic_string_view']]] +]; diff --git a/git-main/search/functions_8.js b/git-main/search/functions_8.js new file mode 100644 index 0000000..8dcf543 --- /dev/null +++ b/git-main/search/functions_8.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['size_0',['size',['../classmgutility_1_1enum__for__each.html#a0d833b4ee26998c4373aee17be12cd90',1,'mgutility::enum_for_each::size()'],['../classmgutility_1_1basic__string__view.html#a26e96c7b63f54ccd9306e3a4ecf5b336',1,'mgutility::basic_string_view::size() const noexcept']]], + ['substr_1',['substr',['../classmgutility_1_1basic__string__view.html#afaa73ee06ad76de37e100e06f98822ee',1,'mgutility::basic_string_view']]], + ['swap_2',['swap',['../classmgutility_1_1optional.html#ac4a977a0b086414df1567343fe6f6f0a',1,'mgutility::optional']]] +]; diff --git a/git-main/search/functions_9.js b/git-main/search/functions_9.js new file mode 100644 index 0000000..33003c9 --- /dev/null +++ b/git-main/search/functions_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['to_5fenum_0',['to_enum',['../namespacemgutility.html#a47470bc6b087ab3ceab7c3873203a2eb',1,'mgutility']]] +]; diff --git a/git-main/search/functions_a.js b/git-main/search/functions_a.js new file mode 100644 index 0000000..cc598b5 --- /dev/null +++ b/git-main/search/functions_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['value_0',['value',['../classmgutility_1_1optional.html#ac1028387cac8311f37d30683aa0e6dee',1,'mgutility::optional::value()'],['../classmgutility_1_1optional.html#abc9fc767c073e865acbad79df5237bd1',1,'mgutility::optional::value() const']]], + ['value_5for_1',['value_or',['../classmgutility_1_1optional.html#acb65e681b1e5c84f0c00059a9e61903d',1,'mgutility::optional::value_or(T &&value)'],['../classmgutility_1_1optional.html#a14f3152ede420d3799dc3ec9f8ec1a10',1,'mgutility::optional::value_or(T &&value) const'],['../classmgutility_1_1optional.html#aee67dde557acbd11fe3c0a8455cab862',1,'mgutility::optional::value_or(const T &value)'],['../classmgutility_1_1optional.html#acf92119863dd7ae1cc5ae387151751b9',1,'mgutility::optional::value_or(const T &value) const']]] +]; diff --git a/git-main/search/functions_b.js b/git-main/search/functions_b.js new file mode 100644 index 0000000..c9b8017 --- /dev/null +++ b/git-main/search/functions_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['what_0',['what',['../structmgutility_1_1bad__optional__access.html#af3a7f794c94499a7660cfed0d3fed8dc',1,'mgutility::bad_optional_access']]] +]; diff --git a/git-main/search/functions_c.js b/git-main/search/functions_c.js new file mode 100644 index 0000000..d1b8aef --- /dev/null +++ b/git-main/search/functions_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_7eoptional_0',['~optional',['../classmgutility_1_1optional.html#a2e1c20d05d40a957ee86318dc1558ff8',1,'mgutility::optional']]] +]; diff --git a/git-main/search/mag.svg b/git-main/search/mag.svg new file mode 100644 index 0000000..ffb6cf0 --- /dev/null +++ b/git-main/search/mag.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/git-main/search/mag_d.svg b/git-main/search/mag_d.svg new file mode 100644 index 0000000..4122773 --- /dev/null +++ b/git-main/search/mag_d.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/git-main/search/mag_sel.svg b/git-main/search/mag_sel.svg new file mode 100644 index 0000000..553dba8 --- /dev/null +++ b/git-main/search/mag_sel.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/git-main/search/mag_seld.svg b/git-main/search/mag_seld.svg new file mode 100644 index 0000000..c906f84 --- /dev/null +++ b/git-main/search/mag_seld.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/git-main/search/namespaces_0.js b/git-main/search/namespaces_0.js new file mode 100644 index 0000000..fc4e662 --- /dev/null +++ b/git-main/search/namespaces_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['mgutility_0',['mgutility',['../namespacemgutility.html',1,'']]] +]; diff --git a/git-main/search/pages_0.js b/git-main/search/pages_0.js new file mode 100644 index 0000000..e7b967e --- /dev/null +++ b/git-main/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['enum_5fname_0',['enum_name',['../md__2home_2runner_2work_2enum__name_2enum__name_2README.html',1,'']]] +]; diff --git a/git-main/search/pages_1.js b/git-main/search/pages_1.js new file mode 100644 index 0000000..96328fe --- /dev/null +++ b/git-main/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['main_20page_0',['Main page',['../index.html',1,'']]] +]; diff --git a/git-main/search/pages_2.js b/git-main/search/pages_2.js new file mode 100644 index 0000000..35ac3bf --- /dev/null +++ b/git-main/search/pages_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['page_0',['Main page',['../index.html',1,'']]] +]; diff --git a/git-main/search/related_0.js b/git-main/search/related_0.js new file mode 100644 index 0000000..810f730 --- /dev/null +++ b/git-main/search/related_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['operator_21_3d_0',['operator!=',['../classmgutility_1_1basic__string__view.html#a1d20761329e2d939ab77bbe3e91570d3',1,'mgutility::basic_string_view::operator!='],['../classmgutility_1_1basic__string__view.html#adac0147a9db1ea20951f75cd3664fcda',1,'mgutility::basic_string_view::operator!=']]], + ['operator_3c_3c_1',['operator<<',['../classmgutility_1_1basic__string__view.html#a3a539c3eb984671d1bdbb035960cb9d6',1,'mgutility::basic_string_view']]], + ['operator_3d_3d_2',['operator==',['../classmgutility_1_1basic__string__view.html#a4f78e96e1c8cd701e36367971c7f112b',1,'mgutility::basic_string_view::operator=='],['../classmgutility_1_1basic__string__view.html#a4e033e35d453263fd34724b2b9634581',1,'mgutility::basic_string_view::operator==']]] +]; diff --git a/git-main/search/search.css b/git-main/search/search.css new file mode 100644 index 0000000..19f76f9 --- /dev/null +++ b/git-main/search/search.css @@ -0,0 +1,291 @@ +/*---------------- Search Box positioning */ + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: var(--search-background-color); + border-radius: 0.65em; + box-shadow: var(--search-box-shadow); + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; +} + + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: var(--search-foreground-color); + outline: none; + font-family: var(--font-family-search); + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: var(--search-active-color); +} + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt var(--font-family-search); + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: var(--font-family-monospace); + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: var(--search-filter-foreground-color); + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: var(--search-filter-foreground-color); + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +div.SRPage { + margin: 5px 2px; + background-color: var(--search-results-background-color); +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: var(--font-family-search); +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: var(--font-family-search); +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: var(--nav-gradient-active-image-parent); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/git-main/search/search.js b/git-main/search/search.js new file mode 100644 index 0000000..666af01 --- /dev/null +++ b/git-main/search/search.js @@ -0,0 +1,694 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +const SEARCH_COOKIE_NAME = ''+'search_grp'; + +const searchResults = new SearchResults(); + +/* A class handling everything associated with the search panel. + + Parameters: + name - The name of the global variable that will be + storing this instance. Is needed to be able to set timeouts. + resultPath - path to use for external files +*/ +function SearchBox(name, resultsPath, extension) { + if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); } + if (!extension || extension == "") { extension = ".html"; } + + function getXPos(item) { + let x = 0; + if (item.offsetWidth) { + while (item && item!=document.body) { + x += item.offsetLeft; + item = item.offsetParent; + } + } + return x; + } + + function getYPos(item) { + let y = 0; + if (item.offsetWidth) { + while (item && item!=document.body) { + y += item.offsetTop; + item = item.offsetParent; + } + } + return y; + } + + // ---------- Instance variables + this.name = name; + this.resultsPath = resultsPath; + this.keyTimeout = 0; + this.keyTimeoutLength = 500; + this.closeSelectionTimeout = 300; + this.lastSearchValue = ""; + this.lastResultsPage = ""; + this.hideTimeout = 0; + this.searchIndex = 0; + this.searchActive = false; + this.extension = extension; + + // ----------- DOM Elements + + this.DOMSearchField = () => document.getElementById("MSearchField"); + this.DOMSearchSelect = () => document.getElementById("MSearchSelect"); + this.DOMSearchSelectWindow = () => document.getElementById("MSearchSelectWindow"); + this.DOMPopupSearchResults = () => document.getElementById("MSearchResults"); + this.DOMPopupSearchResultsWindow = () => document.getElementById("MSearchResultsWindow"); + this.DOMSearchClose = () => document.getElementById("MSearchClose"); + this.DOMSearchBox = () => document.getElementById("MSearchBox"); + + // ------------ Event Handlers + + // Called when focus is added or removed from the search field. + this.OnSearchFieldFocus = function(isActive) { + this.Activate(isActive); + } + + this.OnSearchSelectShow = function() { + const searchSelectWindow = this.DOMSearchSelectWindow(); + const searchField = this.DOMSearchSelect(); + + const left = getXPos(searchField); + const top = getYPos(searchField) + searchField.offsetHeight; + + // show search selection popup + searchSelectWindow.style.display='block'; + searchSelectWindow.style.left = left + 'px'; + searchSelectWindow.style.top = top + 'px'; + + // stop selection hide timer + if (this.hideTimeout) { + clearTimeout(this.hideTimeout); + this.hideTimeout=0; + } + return false; // to avoid "image drag" default event + } + + this.OnSearchSelectHide = function() { + this.hideTimeout = setTimeout(this.CloseSelectionWindow.bind(this), + this.closeSelectionTimeout); + } + + // Called when the content of the search field is changed. + this.OnSearchFieldChange = function(evt) { + if (this.keyTimeout) { // kill running timer + clearTimeout(this.keyTimeout); + this.keyTimeout = 0; + } + + const e = evt ? evt : window.event; // for IE + if (e.keyCode==40 || e.keyCode==13) { + if (e.shiftKey==1) { + this.OnSearchSelectShow(); + const win=this.DOMSearchSelectWindow(); + for (let i=0;i do a search + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) { // Up + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } else if (e.keyCode==13 || e.keyCode==27) { + e.stopPropagation(); + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() { + this.keyTimeout = 0; + + // strip leading whitespace + const searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + const code = searchValue.toLowerCase().charCodeAt(0); + let idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) { // surrogate pair + idxChar = searchValue.substr(0, 2); + } + + let jsFile; + let idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) { + const hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + const loadJS = function(url, impl, loc) { + const scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + const domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + const domSearchBox = this.DOMSearchBox(); + const domPopupSearchResults = this.DOMPopupSearchResults(); + const domSearchClose = this.DOMSearchClose(); + const resultsPath = this.resultsPath; + + const handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + if (idx!=-1) { + searchResults.Search(searchValue); + } else { // no file with search results => force empty search results + searchResults.Search('===='); + } + + if (domPopupSearchResultsWindow.style.display!='block') { + domSearchClose.style.display = 'inline-block'; + let left = getXPos(domSearchBox) + 150; + let top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + const maxWidth = document.body.clientWidth; + const maxHeight = document.body.clientHeight; + let width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + let height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } else if (!isActive) { // directly remove the panel + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults() { + + function convertToId(search) { + let result = ''; + for (let i=0;i. + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) { + const parentElement = document.getElementById(id); + let element = parentElement.firstChild; + + while (element && element!=parentElement) { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) { + element = element.firstChild; + } else if (element.nextSibling) { + element = element.nextSibling; + } else { + do { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) { + const element = this.FindChildElement(id); + if (element) { + if (element.style.display == 'block') { + element.style.display = 'none'; + } else { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) { + if (!search) { // get search word from URL + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + const resultRows = document.getElementsByTagName("div"); + let matches = 0; + + let i = 0; + while (i < resultRows.length) { + const row = resultRows.item(i); + if (row.className == "SRResult") { + let rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) { + row.style.display = 'block'; + matches++; + } else { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) { // no results + document.getElementById("NoMatches").style.display='block'; + } else { // at least one result + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) { + let focusItem; + for (;;) { + const focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { + break; + } else if (!focusItem) { // last element + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) { + let focusItem; + for (;;) { + const focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { + break; + } else if (!focusItem) { // last element + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) { + if (e.type == "keydown") { + this.repeatOn = false; + this.lastKey = e.keyCode; + } else if (e.type == "keypress") { + if (!this.repeatOn) { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } else if (e.type == "keyup") { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) { // Up + const newIndex = itemIndex-1; + let focusItem = this.NavPrev(newIndex); + if (focusItem) { + let child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') { // children visible + let n=0; + let tmpElem; + for (;;) { // search for last child + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) { + focusItem = tmpElem; + } else { // found it! + break; + } + n++; + } + } + } + if (focusItem) { + focusItem.focus(); + } else { // return focus to search field + document.getElementById("MSearchField").focus(); + } + } else if (this.lastKey==40) { // Down + const newIndex = itemIndex+1; + let focusItem; + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') { // children visible + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } else if (this.lastKey==39) { // Right + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } else if (this.lastKey==37) { // Left + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } else if (this.lastKey==27) { // Escape + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } else if (this.lastKey==13) { // Enter + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) { // Up + if (childIndex>0) { + const newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } else { // already at first child, jump to parent + document.getElementById('Item'+itemIndex).focus(); + } + } else if (this.lastKey==40) { // Down + const newIndex = childIndex+1; + let elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) { // last child, jump to parent next parent + elem = this.NavNext(itemIndex+1); + } + if (elem) { + elem.focus(); + } + } else if (this.lastKey==27) { // Escape + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } else if (this.lastKey==13) { // Enter + return true; + } + return false; + } +} + +function createResults(resultsPath) { + + function setKeyActions(elem,action) { + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); + } + + function setClassAttr(elem,attr) { + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); + } + + const results = document.getElementById("SRResults"); + results.innerHTML = ''; + searchData.forEach((elem,index) => { + const id = elem[0]; + const srResult = document.createElement('div'); + srResult.setAttribute('id','SR_'+id); + setClassAttr(srResult,'SRResult'); + const srEntry = document.createElement('div'); + setClassAttr(srEntry,'SREntry'); + const srLink = document.createElement('a'); + srLink.setAttribute('id','Item'+index); + setKeyActions(srLink,'return searchResults.Nav(event,'+index+')'); + setClassAttr(srLink,'SRSymbol'); + srLink.innerHTML = elem[1][0]; + srEntry.appendChild(srLink); + if (elem[1].length==2) { // single result + srLink.setAttribute('href',resultsPath+elem[1][1][0]); + srLink.setAttribute('onclick','searchBox.CloseResultsWindow()'); + if (elem[1][1][1]) { + srLink.setAttribute('target','_parent'); + } else { + srLink.setAttribute('target','_blank'); + } + const srScope = document.createElement('span'); + setClassAttr(srScope,'SRScope'); + srScope.innerHTML = elem[1][1][2]; + srEntry.appendChild(srScope); + } else { // multiple results + srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")'); + const srChildren = document.createElement('div'); + setClassAttr(srChildren,'SRChildren'); + for (let c=0; c-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/git-main/splitbard.png b/git-main/splitbard.png new file mode 100644 index 0000000000000000000000000000000000000000..8367416d757fd7b6dc4272b6432dc75a75abd068 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf@VhhFKy35^fiT zT~&lUj3=cDh^%3HDY9k5CEku}PHXNoNC(_$U3XPb&Q*ME25pT;2(*BOgAf<+R$lzakPG`kF31()Fx{L5Wrac|GQzjeE= zueY1`Ze{#x<8=S|`~MgGetGce)#vN&|J{Cd^tS%;tBYTo?+^d68<#n_Y_xx`J||4O V@QB{^CqU0Kc)I$ztaD0e0svEzbJzd? literal 0 HcmV?d00001 diff --git a/git-main/string__view_8hpp_source.html b/git-main/string__view_8hpp_source.html new file mode 100644 index 0000000..7962cb4 --- /dev/null +++ b/git-main/string__view_8hpp_source.html @@ -0,0 +1,329 @@ + + + + + + + + + enum_name: /home/runner/work/enum_name/enum_name/include/mgutility/std/string_view.hpp Source File + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    string_view.hpp
    +
    +
    +
    1/*
    +
    2MIT License
    +
    3
    +
    4Copyright (c) 2024 mguludag
    +
    5
    +
    6Permission is hereby granted, free of charge, to any person obtaining a copy
    +
    7of this software and associated documentation files (the "Software"), to deal
    +
    8in the Software without restriction, including without limitation the rights
    +
    9to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +
    10copies of the Software, and to permit persons to whom the Software is
    +
    11furnished to do so, subject to the following conditions:
    +
    12
    +
    13The above copyright notice and this permission notice shall be included in all
    +
    14copies or substantial portions of the Software.
    +
    15
    +
    16THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +
    17IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +
    18FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +
    19AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +
    20LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +
    21OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +
    22SOFTWARE.
    +
    23*/
    +
    24
    +
    25#ifndef STRING_STRING_VIEW_HPP
    +
    26#define STRING_STRING_VIEW_HPP
    +
    27
    +
    28#include <cstring>
    +
    29#include <ostream>
    +
    30#include <string>
    +
    31
    + +
    33
    +
    34namespace mgutility
    +
    35{
    +
    36
    +
    37#if MGUTILITY_CPLUSPLUS < 201703L
    +
    38
    +
    39 namespace detail
    +
    40 {
    +
    48 constexpr auto strlen_constexpr(const char *str, size_t sz = 0) noexcept
    +
    49 -> size_t
    +
    50 {
    +
    51 return str[sz] == '\0' ? sz : strlen_constexpr(str, ++sz);
    +
    52 }
    +
    53 } // namespace detail
    +
    54
    +
    60 template <typename Char = char>
    +
    + +
    62 {
    +
    63 public:
    +
    67 constexpr inline basic_string_view() noexcept : data_(""), size_(0) {}
    +
    68
    +
    +
    74 constexpr inline basic_string_view(const Char *str) noexcept
    +
    75 : data_(str), size_(detail::strlen_constexpr(str)) {}
    +
    +
    76
    +
    +
    83 constexpr inline basic_string_view(const Char *str, size_t len) noexcept
    +
    84 : data_(str), size_(len) {}
    +
    +
    85
    +
    +
    91 constexpr inline basic_string_view(const basic_string_view &other)
    +
    92 : data_(other.data_), size_(other.size_) {}
    +
    +
    93
    +
    +
    99 constexpr inline basic_string_view(basic_string_view &&other) noexcept
    +
    100 : data_(std::move(other.data_)), size_(std::move(other.size_)) {}
    +
    +
    101
    +
    108 MGUTILITY_CNSTXPR inline basic_string_view<Char> &
    +
    +
    109 operator=(const basic_string_view &other) noexcept
    +
    110 {
    +
    111 data_ = other.data_;
    +
    112 size_ = other.size_;
    +
    113 return *this;
    +
    114 }
    +
    +
    115
    +
    122 MGUTILITY_CNSTXPR inline basic_string_view<Char> &
    +
    +
    123 operator=(basic_string_view &&other) noexcept
    +
    124 {
    +
    125 data_ = std::move(other.data_);
    +
    126 size_ = std::move(other.size_);
    +
    127 return *this;
    +
    128 }
    +
    +
    129
    +
    +
    136 constexpr inline const Char operator[](size_t index) const noexcept
    +
    137 {
    +
    138 return data_[index];
    +
    139 }
    +
    +
    140
    +
    146 constexpr inline const Char *begin() const noexcept { return data_; }
    +
    147
    +
    153 constexpr inline const Char *end() const noexcept { return (data_ + size_); }
    +
    154
    +
    160 constexpr inline bool empty() const noexcept { return size_ < 1; }
    +
    161
    +
    167 constexpr inline size_t size() const noexcept { return size_; }
    +
    168
    +
    174 constexpr inline const Char *data() const noexcept { return data_; }
    +
    175
    +
    +
    183 constexpr inline basic_string_view<Char> substr(size_t begin,
    +
    184 size_t len = 0U) const noexcept
    +
    185 {
    +
    186 return basic_string_view<Char>(data_ + begin, len == 0U ? size_ - begin : len);
    +
    187 }
    +
    +
    188
    +
    +
    196 constexpr inline size_t rfind(Char c, size_t pos = npos) const noexcept
    +
    197 {
    +
    198 return (pos == npos ? pos = size_ : pos = pos), c == data_[pos] ? pos
    +
    199 : pos == 0U
    +
    200 ? npos
    +
    201 : rfind(c, --pos);
    +
    202 }
    +
    +
    203
    +
    +
    211 constexpr inline size_t find(Char c, size_t pos = 0) const noexcept
    +
    212 {
    +
    213 return c == data_[pos] ? pos : pos < size_ ? find(c, ++pos)
    +
    214 : npos;
    +
    215 }
    +
    +
    216
    +
    224 constexpr friend inline bool
    +
    + +
    226 basic_string_view<Char> rhs) noexcept
    +
    227 {
    +
    228 return (lhs.size_ == rhs.size_) &&
    +
    229 std::strncmp(lhs.data_, rhs.data_, lhs.size_) == 0;
    +
    230 }
    +
    +
    231
    +
    +
    239 constexpr friend inline bool operator==(basic_string_view<Char> lhs,
    +
    240 const Char *rhs) noexcept
    +
    241 {
    +
    242 return (lhs.size_ == detail::strlen_constexpr(rhs)) &&
    +
    243 std::strncmp(lhs.data_, rhs, lhs.size_) == 0;
    +
    244 }
    +
    +
    245
    +
    253 constexpr friend inline bool
    +
    + +
    255 basic_string_view<Char> rhs) noexcept
    +
    256 {
    +
    257 return !(lhs == rhs);
    +
    258 }
    +
    +
    259
    +
    +
    267 constexpr friend inline bool operator!=(basic_string_view<Char> lhs,
    +
    268 const Char *rhs) noexcept
    +
    269 {
    +
    270 return !(lhs == rhs);
    +
    271 }
    +
    +
    272
    +
    278 inline operator std::string() { return std::string(data_, size_); }
    +
    279
    +
    285 inline operator std::string() const { return std::string(data_, size_); }
    +
    286
    +
    +
    294 friend inline std::ostream &operator<<(std::ostream &os,
    +
    295 const basic_string_view<Char> &sv)
    +
    296 {
    +
    297 for (auto c : sv)
    +
    298 {
    +
    299 os << c;
    +
    300 }
    +
    301 return os;
    +
    302 }
    +
    +
    303
    +
    304 static constexpr auto npos = -1;
    +
    305
    +
    306 private:
    +
    307 size_t size_;
    +
    308 const Char *data_;
    +
    309 };
    +
    +
    310
    +
    311 using string_view = basic_string_view<char>;
    +
    312
    +
    313#else
    +
    314#include <string_view>
    +
    315
    +
    316 using string_view = std::string_view;
    +
    317
    +
    318#endif
    +
    319
    +
    320
    +
    321} // namespace mgutility
    +
    322
    +
    323#endif // STRING_STRING_VIEW_HPP
    +
    A basic string view class template.
    Definition string_view.hpp:62
    +
    constexpr basic_string_view(const Char *str) noexcept
    Constructs a basic_string_view from a C-string.
    Definition string_view.hpp:74
    +
    constexpr const Char * end() const noexcept
    Returns an iterator to the end of the string.
    Definition string_view.hpp:153
    +
    constexpr friend bool operator!=(basic_string_view< Char > lhs, basic_string_view< Char > rhs) noexcept
    Inequality operator.
    Definition string_view.hpp:254
    +
    constexpr basic_string_view(const basic_string_view &other)
    Copy constructor.
    Definition string_view.hpp:91
    +
    constexpr size_t size() const noexcept
    Returns the size of the string.
    Definition string_view.hpp:167
    +
    constexpr bool empty() const noexcept
    Checks if the string is empty.
    Definition string_view.hpp:160
    +
    friend std::ostream & operator<<(std::ostream &os, const basic_string_view< Char > &sv)
    Stream insertion operator.
    Definition string_view.hpp:294
    +
    constexpr basic_string_view(basic_string_view &&other) noexcept
    Move constructor.
    Definition string_view.hpp:99
    +
    constexpr friend bool operator==(basic_string_view< Char > lhs, const Char *rhs) noexcept
    Equality operator.
    Definition string_view.hpp:239
    +
    constexpr friend bool operator==(basic_string_view< Char > lhs, basic_string_view< Char > rhs) noexcept
    Equality operator.
    Definition string_view.hpp:225
    +
    constexpr size_t find(Char c, size_t pos=0) const noexcept
    Finds the first occurrence of a character.
    Definition string_view.hpp:211
    +
    MGUTILITY_CNSTXPR basic_string_view< Char > & operator=(const basic_string_view &other) noexcept
    Copy assignment operator.
    Definition string_view.hpp:109
    +
    constexpr const Char operator[](size_t index) const noexcept
    Accesses the character at the given index.
    Definition string_view.hpp:136
    +
    constexpr const Char * begin() const noexcept
    Returns an iterator to the beginning of the string.
    Definition string_view.hpp:146
    +
    constexpr basic_string_view() noexcept
    Default constructor.
    Definition string_view.hpp:67
    +
    constexpr size_t rfind(Char c, size_t pos=npos) const noexcept
    Finds the last occurrence of a character.
    Definition string_view.hpp:196
    +
    constexpr const Char * data() const noexcept
    Returns a pointer to the underlying data.
    Definition string_view.hpp:174
    +
    constexpr basic_string_view(const Char *str, size_t len) noexcept
    Constructs a basic_string_view from a C-string and length.
    Definition string_view.hpp:83
    +
    constexpr friend bool operator!=(basic_string_view< Char > lhs, const Char *rhs) noexcept
    Inequality operator.
    Definition string_view.hpp:267
    +
    MGUTILITY_CNSTXPR basic_string_view< Char > & operator=(basic_string_view &&other) noexcept
    Move assignment operator.
    Definition string_view.hpp:123
    +
    constexpr basic_string_view< Char > substr(size_t begin, size_t len=0U) const noexcept
    Returns a substring view.
    Definition string_view.hpp:183
    +
    Defines macros for compiler and standard support detection.
    +
    Checks for MSVC compiler version.
    Definition enum_for_each.hpp:35
    +
    + + + + diff --git a/git-main/structmgutility_1_1bad__optional__access-members.html b/git-main/structmgutility_1_1bad__optional__access-members.html new file mode 100644 index 0000000..f8998af --- /dev/null +++ b/git-main/structmgutility_1_1bad__optional__access-members.html @@ -0,0 +1,94 @@ + + + + + + + + + enum_name: Member List + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    mgutility::bad_optional_access Member List
    +
    +
    + +

    This is the complete list of members for mgutility::bad_optional_access, including all inherited members.

    + + +
    what() const noexceptmgutility::bad_optional_accessinline
    + + + + diff --git a/git-main/structmgutility_1_1bad__optional__access.html b/git-main/structmgutility_1_1bad__optional__access.html new file mode 100644 index 0000000..1c67021 --- /dev/null +++ b/git-main/structmgutility_1_1bad__optional__access.html @@ -0,0 +1,145 @@ + + + + + + + + + enum_name: mgutility::bad_optional_access Struct Reference + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    mgutility::bad_optional_access Struct Reference
    +
    +
    + +

    Exception thrown when accessing an empty optional. + More...

    + +

    #include <optional.hpp>

    +
    +Inheritance diagram for mgutility::bad_optional_access:
    +
    +
    + +
    + + + + + +

    +Public Member Functions

    const char * what () const noexcept
     Returns the exception message.
     
    +

    Detailed Description

    +

    Exception thrown when accessing an empty optional.

    +

    Member Function Documentation

    + +

    ◆ what()

    + +
    +
    + + + + + +
    + + + + + + + +
    const char * mgutility::bad_optional_access::what () const
    +
    +inlinenoexcept
    +
    + +

    Returns the exception message.

    +
    Returns
    A C-string with the exception message.
    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/enum_name/enum_name/include/mgutility/std/optional.hpp
    • +
    +
    + + + + diff --git a/git-main/structmgutility_1_1bad__optional__access.png b/git-main/structmgutility_1_1bad__optional__access.png new file mode 100644 index 0000000000000000000000000000000000000000..24f056f59e7f0502dda29e8c4cb789c9c4c6ac3c GIT binary patch literal 676 zcmeAS@N?(olHy`uVBq!ia0vp^+kiNLgBeIR8`rM{QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=B;Ao-U3d6^w7^-rcs!fTu;> z{M?@Z!tz@#OcQ(J?tdp%dmYb(8%OfnO@51|r9I|!o3vPSgXbmhM&C(szj&(q_D)E; z^{dzFFT-pV`>VM*)z@@mwWd9ZJoPI^XM5)LH&tu3sak_`t|#+f8Ib{roKk8IntM<*sR_XhK8-|_?2mBj(8REEd7(N6gFgHwRl4jT=a)aT)(gSP^`mAOQ6`C6u z4|t<12{SU5_BZg9@@>@h1nTwtbV+cV=T=XxYwqu!-r}(1nz*EP?t#2@<{MQrz2%dl z^*Wy(f2pYdsrcu@<=U(vg+EVEH_kmdaq9XtvnK3~-nni={LQo@J-Wf!R~LO2Z9AG7 zlsh}o_r$r}t1CjcS{uzYTeGgr^K#AB=}T|k_*%ny?P=uF{XKUV+TMRG`$i}X7*2lY z{;FBF&h0y}dwZ4C@7T#}R^R1s&waD>w@+41Z|&yo{TuVYd@~Y!#vG;QxyVajn}7P# z4bRs`PhPU*4DY1FvnEu&n=?;kQde#6xqs{H589R)`>0+mJMz)WX=&uS1arknB`bQf z_Inp@t*W~^ZHfK*1JhLWS+}WFW*#y#miGJ4Fmv*q>wHYEk-+rC;OXk;vd$@?2>?GQ BIpqKV literal 0 HcmV?d00001 diff --git a/git-main/structmgutility_1_1detail_1_1enum__sequence.html b/git-main/structmgutility_1_1detail_1_1enum__sequence.html new file mode 100644 index 0000000..36b38e5 --- /dev/null +++ b/git-main/structmgutility_1_1detail_1_1enum__sequence.html @@ -0,0 +1,108 @@ + + + + + + + + + enum_name: mgutility::detail::enum_sequence< Enum,... > Struct Template Reference + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    mgutility::detail::enum_sequence< Enum,... > Struct Template Reference
    +
    +
    + +

    Represents a sequence of enumeration values. + More...

    + +

    #include <meta.hpp>

    +

    Detailed Description

    +
    template<typename Enum, Enum...>
    +struct mgutility::detail::enum_sequence< Enum,... >

    Represents a sequence of enumeration values.

    +
    Template Parameters
    + + + +
    EnumThe enumeration type.
    ...EnumValuesThe enumeration values in the sequence.
    +
    +
    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/enum_name/enum_name/include/mgutility/reflection/detail/meta.hpp
    • +
    +
    + + + + diff --git a/git-main/structmgutility_1_1detail_1_1enum__sequence__helper.html b/git-main/structmgutility_1_1detail_1_1enum__sequence__helper.html new file mode 100644 index 0000000..6640cfa --- /dev/null +++ b/git-main/structmgutility_1_1detail_1_1enum__sequence__helper.html @@ -0,0 +1,110 @@ + + + + + + + + + enum_name: mgutility::detail::enum_sequence_helper< Enum, Min, Max, Next > Struct Template Reference + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    mgutility::detail::enum_sequence_helper< Enum, Min, Max, Next > Struct Template Reference
    +
    +
    + +

    Helper for generating a sequence of enumeration values. + More...

    + +

    #include <meta.hpp>

    +

    Detailed Description

    +
    template<typename Enum, int Min, int Max, int... Next>
    +struct mgutility::detail::enum_sequence_helper< Enum, Min, Max, Next >

    Helper for generating a sequence of enumeration values.

    +
    Template Parameters
    + + + + + +
    EnumThe enumeration type.
    MinThe minimum value in the sequence.
    MaxThe maximum value in the sequence.
    ...NextThe next values in the sequence.
    +
    +
    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/enum_name/enum_name/include/mgutility/reflection/detail/meta.hpp
    • +
    +
    + + + + diff --git a/git-main/structmgutility_1_1detail_1_1enum__sequence__helper_3_01Enum_00_01Min_00_01Min_00_01Next_8_8_8_01_4-members.html b/git-main/structmgutility_1_1detail_1_1enum__sequence__helper_3_01Enum_00_01Min_00_01Min_00_01Next_8_8_8_01_4-members.html new file mode 100644 index 0000000..e7952ab --- /dev/null +++ b/git-main/structmgutility_1_1detail_1_1enum__sequence__helper_3_01Enum_00_01Min_00_01Min_00_01Next_8_8_8_01_4-members.html @@ -0,0 +1,94 @@ + + + + + + + + + enum_name: Member List + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    mgutility::detail::enum_sequence_helper< Enum, Min, Min, Next... > Member List
    +
    +
    + +

    This is the complete list of members for mgutility::detail::enum_sequence_helper< Enum, Min, Min, Next... >, including all inherited members.

    + + +
    type typedefmgutility::detail::enum_sequence_helper< Enum, Min, Min, Next... >
    + + + + diff --git a/git-main/structmgutility_1_1detail_1_1enum__sequence__helper_3_01Enum_00_01Min_00_01Min_00_01Next_8_8_8_01_4.html b/git-main/structmgutility_1_1detail_1_1enum__sequence__helper_3_01Enum_00_01Min_00_01Min_00_01Next_8_8_8_01_4.html new file mode 100644 index 0000000..a932ba1 --- /dev/null +++ b/git-main/structmgutility_1_1detail_1_1enum__sequence__helper_3_01Enum_00_01Min_00_01Min_00_01Next_8_8_8_01_4.html @@ -0,0 +1,120 @@ + + + + + + + + + enum_name: mgutility::detail::enum_sequence_helper< Enum, Min, Min, Next... > Struct Template Reference + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    mgutility::detail::enum_sequence_helper< Enum, Min, Min, Next... > Struct Template Reference
    +
    +
    + +

    Specialization of enum_sequence_helper for the end of the sequence. + More...

    + +

    #include <meta.hpp>

    + + + + + +

    +Public Types

    +using type = enum_sequence<Enum, static_cast<Enum>(Next)...>
     The resulting sequence type.
     
    +

    Detailed Description

    +
    template<typename Enum, int Min, int... Next>
    +struct mgutility::detail::enum_sequence_helper< Enum, Min, Min, Next... >

    Specialization of enum_sequence_helper for the end of the sequence.

    +
    Template Parameters
    + + + + +
    EnumThe enumeration type.
    MinThe minimum value in the sequence.
    ...NextThe next values in the sequence.
    +
    +
    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/enum_name/enum_name/include/mgutility/reflection/detail/meta.hpp
    • +
    +
    + + + + diff --git a/git-main/structmgutility_1_1detail_1_1enum__type-members.html b/git-main/structmgutility_1_1detail_1_1enum__type-members.html new file mode 100644 index 0000000..156fb73 --- /dev/null +++ b/git-main/structmgutility_1_1detail_1_1enum__type-members.html @@ -0,0 +1,95 @@ + + + + + + + + + enum_name: Member List + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    mgutility::detail::enum_type Member List
    +
    +
    + +

    This is the complete list of members for mgutility::detail::enum_type, including all inherited members.

    + + + +
    name() noexcept -> mgutility::string_viewmgutility::detail::enum_typeinlinestatic
    name() noexcept -> mgutility::string_viewmgutility::detail::enum_typeinlinestatic
    + + + + diff --git a/git-main/structmgutility_1_1detail_1_1enum__type.html b/git-main/structmgutility_1_1detail_1_1enum__type.html new file mode 100644 index 0000000..f205231 --- /dev/null +++ b/git-main/structmgutility_1_1detail_1_1enum__type.html @@ -0,0 +1,185 @@ + + + + + + + + + enum_name: mgutility::detail::enum_type Struct Reference + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    mgutility::detail::enum_type Struct Reference
    +
    +
    + + + + + + + + + + +

    +Static Public Member Functions

    template<typename Enum , Enum e, detail::enable_if_t<!detail::is_scoped_enum< Enum >::value, bool > = true>
    static MGUTILITY_CNSTXPR auto name () noexcept -> mgutility::string_view
     Gets the name of an unscoped enum value.
     
    template<typename Enum , Enum e, detail::enable_if_t< detail::is_scoped_enum< Enum >::value, bool > = true>
    static MGUTILITY_CNSTXPR auto name () noexcept -> mgutility::string_view
     Gets the name of a scoped enum value.
     
    +

    Member Function Documentation

    + +

    ◆ name() [1/2]

    + +
    +
    +
    +template<typename Enum , Enum e, detail::enable_if_t<!detail::is_scoped_enum< Enum >::value, bool > = true>
    + + + + + +
    + + + + + + + +
    static MGUTILITY_CNSTXPR auto mgutility::detail::enum_type::name () -> mgutility::string_view +
    +
    +inlinestaticnoexcept
    +
    + +

    Gets the name of an unscoped enum value.

    +
    Template Parameters
    + + + +
    EnumThe enum type.
    eThe enum value.
    +
    +
    +
    Returns
    A string view representing the name of the enum value.
    + +
    +
    + +

    ◆ name() [2/2]

    + +
    +
    +
    +template<typename Enum , Enum e, detail::enable_if_t< detail::is_scoped_enum< Enum >::value, bool > = true>
    + + + + + +
    + + + + + + + +
    static MGUTILITY_CNSTXPR auto mgutility::detail::enum_type::name () -> mgutility::string_view +
    +
    +inlinestaticnoexcept
    +
    + +

    Gets the name of a scoped enum value.

    +
    Template Parameters
    + + + +
    EnumThe enum type.
    eThe enum value.
    +
    +
    +
    Returns
    A string view representing the name of the enum value.
    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/enum_name/enum_name/include/mgutility/reflection/detail/enum_name_impl.hpp
    • +
    +
    + + + + diff --git a/git-main/structmgutility_1_1detail_1_1has__bit__or.html b/git-main/structmgutility_1_1detail_1_1has__bit__or.html new file mode 100644 index 0000000..96ee4e6 --- /dev/null +++ b/git-main/structmgutility_1_1detail_1_1has__bit__or.html @@ -0,0 +1,114 @@ + + + + + + + + + enum_name: mgutility::detail::has_bit_or< T, typename > Struct Template Reference + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    mgutility::detail::has_bit_or< T, typename > Struct Template Reference
    +
    +
    + +

    Trait to check if a type supports the bitwise OR operator. + More...

    + +

    #include <meta.hpp>

    +
    +Inheritance diagram for mgutility::detail::has_bit_or< T, typename >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<typename T, typename = void>
    +struct mgutility::detail::has_bit_or< T, typename >

    Trait to check if a type supports the bitwise OR operator.

    +
    Template Parameters
    + + + +
    TThe type to check.
    EnableSFINAE parameter, default is void.
    +
    +
    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/enum_name/enum_name/include/mgutility/reflection/detail/meta.hpp
    • +
    +
    + + + + diff --git a/git-main/structmgutility_1_1detail_1_1has__bit__or.png b/git-main/structmgutility_1_1detail_1_1has__bit__or.png new file mode 100644 index 0000000000000000000000000000000000000000..ad760a150018c92fc6b56e91a305a55d7be03299 GIT binary patch literal 818 zcmV-21I_%2P)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0008L zNkl3`9#msoMXF$L(N1JkptrolcK9N96zpql<*{3p2B*f{|oQEqIcQ zs0B}w5p^+q`gqyHa&xlpJ7e)?_-eEN8vZNB+h6J4IQH24$1~@_ys;koBN_dCjle%y{fFGC?-5fzC{b3BqM6UlVn6~@MdN~1pq&&8vsOAWcb@HFnwhB zjXf@XX!up_0U)LpJOD)0f(L+zTJQi6Q41abB5J_{KtwHg0Enms4*(Ih-~k|_7CZn% z)Pe_qh+6Of5K#*r0DeYhW>E!`q?lUpk`z%3UXmi}J9v|7lO(4y=32S);OpttX+`|K@m$+z6;YUBCYUNM;MflFsREyFDn82rc)fTM> z@J*tQ;N9%vMB_+#+v5Kvyt|B}kWV6Cj()WKrN}2&IwvO1_vjP&#JW!)h<7*i-+`lJstM74x6`>EV54l;rFL_PzSFR@(FR5RIDm- wlJttkX)j3uwBRKvq87X)MbrjwW)@U`03CERx@NOi>Hq)$07*qoM6N<$f{D7BNdN!< literal 0 HcmV?d00001 diff --git a/git-main/structmgutility_1_1detail_1_1has__bit__or_3_01T_00_01decltype_07_07T_02_03_7T_02_03_08_00_01void_07_08_08_4.html b/git-main/structmgutility_1_1detail_1_1has__bit__or_3_01T_00_01decltype_07_07T_02_03_7T_02_03_08_00_01void_07_08_08_4.html new file mode 100644 index 0000000..50e1beb --- /dev/null +++ b/git-main/structmgutility_1_1detail_1_1has__bit__or_3_01T_00_01decltype_07_07T_02_03_7T_02_03_08_00_01void_07_08_08_4.html @@ -0,0 +1,113 @@ + + + + + + + + + enum_name: mgutility::detail::has_bit_or< T, decltype((T{}|T{}), void())> Struct Template Reference + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    mgutility::detail::has_bit_or< T, decltype((T{}|T{}), void())> Struct Template Reference
    +
    +
    + +

    Specialization of has_bit_or for types that support the bitwise OR operator. + More...

    + +

    #include <meta.hpp>

    +
    +Inheritance diagram for mgutility::detail::has_bit_or< T, decltype((T{}|T{}), void())>:
    +
    +
    + +
    +

    Detailed Description

    +
    template<typename T>
    +struct mgutility::detail::has_bit_or< T, decltype((T{}|T{}), void())>

    Specialization of has_bit_or for types that support the bitwise OR operator.

    +
    Template Parameters
    + + +
    TThe type to check.
    +
    +
    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/enum_name/enum_name/include/mgutility/reflection/detail/meta.hpp
    • +
    +
    + + + + diff --git a/git-main/structmgutility_1_1detail_1_1has__bit__or_3_01T_00_01decltype_07_07T_02_03_7T_02_03_08_00_01void_07_08_08_4.png b/git-main/structmgutility_1_1detail_1_1has__bit__or_3_01T_00_01decltype_07_07T_02_03_7T_02_03_08_00_01void_07_08_08_4.png new file mode 100644 index 0000000000000000000000000000000000000000..a327c4a0dd989978a3b06f5467d4585156ca3bc0 GIT binary patch literal 1035 zcmeAS@N?(olHy`uVBq!ia0y~yVDtvE12~w03f*F8(FfeDDeT9L6d77t-V@L(#+qt)=z1HAi z_153}{eS((CBpX)-0)PJCHh_G>%y8O12%D{y+VS4E-p1Zik_`1wH`aCERi|2ROM-a zo~mYhk*23*%(15?y{Tr)FYkKxYr41RsfS#8kIh;uV#K`rfB)X!zN`A^vcgsS|L(Y+ zKU?*sbj*QNkL;WG&Xk|dy}tDAhrbDX+fFyGSCyN;L&ntmlK75Oa`mr1eb1La^*GJ* z7t{3P_cZ?V%blJU zdU_=QU3C3H{?0wiXJ|5Q5BL0KS8t}bJQL`yU;hJPE}jB(<-!=RAU^Zyf`YCtN0u|h z%$ILqdXRid)q%_2UR7A3xrlSZA>Y)KEFKGDm{J1O7>hKfGgwaXZjb>g;d?5i&<<4K zyp!d`!WgC}0eX~5|4`ObR_f~L=vU0yz2Pmt=JaiIop)||3k>Jn=K*@T*6rzfhwq8q z&Wm_GEB^G^led>IYZkv9cY2C?ZvLrt*I&-Ai+)z~`$y^eH(BS>Hl6$a{pCTHxPqIp zK-m*dzdhS|`g6PAyvoy0KfOKsbiuK0{4?*FOxU?&kM6}+HI?7WH$Gc1r!HUCNA&V8 zzv+5<@()d1ubORJw(NMfx!{g7$G%1Vs?2YTJAT(^qx_HiJLXvH&fm)O`^eMU4<~Q` z%DE9+SP}fos{OW6Mr7%m*Vin|U)`>J-&R(kd$@7??AJF^jn94fdOPp(Upu{WCmFdZ zW&gLyemiC+%NJJrW)uITy{9)X?EmLoaI++P`Okf)@3xqQ_Ac;1#xEF|E^V9a(h_l@1Fee@8=@liI*3j&7PHMa zT5rtW0aMY>HJR7HEh`DMJ@@#m$nIt4G2gUrJpZWtakKaBY{{#(`J3MUpE2D{e(f=b zi+Rpl%5r~q*m2A6l(Ctz`qMnVUuTR~Y<}B!J+$u8r=J?@cg^|UoBRGpUdXL)!MAEk zREqCz^F6!z{`K#6Hy>|{z46U@iudhv3uA7T@jbn?tylvX+lSAly0{1me$@QW!1!sJ V+eZCaQ-Rr*!PC{xWt~$(69Bvz4U+%> literal 0 HcmV?d00001 diff --git a/git-main/structmgutility_1_1detail_1_1is__scoped__enum-members.html b/git-main/structmgutility_1_1detail_1_1is__scoped__enum-members.html new file mode 100644 index 0000000..571654f --- /dev/null +++ b/git-main/structmgutility_1_1detail_1_1is__scoped__enum-members.html @@ -0,0 +1,94 @@ + + + + + + + + + enum_name: Member List + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    mgutility::detail::is_scoped_enum< E > Member List
    +
    +
    + +

    This is the complete list of members for mgutility::detail::is_scoped_enum< E >, including all inherited members.

    + + +
    valuemgutility::detail::is_scoped_enum< E >static
    + + + + diff --git a/git-main/structmgutility_1_1detail_1_1is__scoped__enum.html b/git-main/structmgutility_1_1detail_1_1is__scoped__enum.html new file mode 100644 index 0000000..deac8ac --- /dev/null +++ b/git-main/structmgutility_1_1detail_1_1is__scoped__enum.html @@ -0,0 +1,147 @@ + + + + + + + + + enum_name: mgutility::detail::is_scoped_enum< E > Struct Template Reference + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    mgutility::detail::is_scoped_enum< E > Struct Template Reference
    +
    +
    + +

    Trait to check if a type is a scoped enumeration. + More...

    + +

    #include <meta.hpp>

    + + + + + +

    +Static Public Attributes

    static constexpr auto value
     Boolean value indicating if the type is a scoped enumeration.
     
    +

    Detailed Description

    +
    template<typename E>
    +struct mgutility::detail::is_scoped_enum< E >

    Trait to check if a type is a scoped enumeration.

    +
    Template Parameters
    + + +
    EThe type to check.
    +
    +
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename E >
    + + + + + +
    + + + + +
    constexpr auto mgutility::detail::is_scoped_enum< E >::value
    +
    +staticconstexpr
    +
    +Initial value:
    = std::is_enum<E>::value &&
    +
    !std::is_convertible<E, typename std::underlying_type<E>::type>::value
    +
    static constexpr auto value
    Boolean value indicating if the type is a scoped enumeration.
    Definition meta.hpp:45
    +
    +

    Boolean value indicating if the type is a scoped enumeration.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/enum_name/enum_name/include/mgutility/reflection/detail/meta.hpp
    • +
    +
    + + + + diff --git a/git-main/structmgutility_1_1enum__range-members.html b/git-main/structmgutility_1_1enum__range-members.html new file mode 100644 index 0000000..19dc9aa --- /dev/null +++ b/git-main/structmgutility_1_1enum__range-members.html @@ -0,0 +1,95 @@ + + + + + + + + + enum_name: Member List + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    mgutility::enum_range< T > Member List
    +
    +
    + +

    This is the complete list of members for mgutility::enum_range< T >, including all inherited members.

    + + + +
    max (defined in mgutility::enum_range< T >)mgutility::enum_range< T >static
    min (defined in mgutility::enum_range< T >)mgutility::enum_range< T >static
    + + + + diff --git a/git-main/structmgutility_1_1enum__range.html b/git-main/structmgutility_1_1enum__range.html new file mode 100644 index 0000000..1e16428 --- /dev/null +++ b/git-main/structmgutility_1_1enum__range.html @@ -0,0 +1,120 @@ + + + + + + + + + enum_name: mgutility::enum_range< T > Struct Template Reference + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    mgutility::enum_range< T > Struct Template Reference
    +
    +
    + +

    Provides the range for an enumeration type. + More...

    + +

    #include <meta.hpp>

    + + + + + + +

    +Static Public Attributes

    +static constexpr auto min {0}
     
    +static constexpr auto max {256}
     
    +

    Detailed Description

    +
    template<typename T>
    +struct mgutility::enum_range< T >

    Provides the range for an enumeration type.

    +
    Template Parameters
    + + +
    TThe enumeration type.
    +
    +
    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/enum_name/enum_name/include/mgutility/reflection/detail/meta.hpp
    • +
    +
    + + + + diff --git a/git-main/structmgutility_1_1enum__range_3_01color_01_4-members.html b/git-main/structmgutility_1_1enum__range_3_01color_01_4-members.html new file mode 100644 index 0000000..6045479 --- /dev/null +++ b/git-main/structmgutility_1_1enum__range_3_01color_01_4-members.html @@ -0,0 +1,95 @@ + + + + + + + + + enum_name: Member List + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    mgutility::enum_range< color > Member List
    +
    +
    + +

    This is the complete list of members for mgutility::enum_range< color >, including all inherited members.

    + + + +
    max (defined in mgutility::enum_range< color >)mgutility::enum_range< color >static
    min (defined in mgutility::enum_range< color >)mgutility::enum_range< color >static
    + + + + diff --git a/git-main/structmgutility_1_1enum__range_3_01color_01_4.html b/git-main/structmgutility_1_1enum__range_3_01color_01_4.html new file mode 100644 index 0000000..6187202 --- /dev/null +++ b/git-main/structmgutility_1_1enum__range_3_01color_01_4.html @@ -0,0 +1,106 @@ + + + + + + + + + enum_name: mgutility::enum_range< color > Struct Reference + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    mgutility::enum_range< color > Struct Reference
    +
    +
    + + + + + + +

    +Static Public Attributes

    +static constexpr auto min = 0
     
    +static constexpr auto max = 150
     
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/enum_name/enum_name/tests/test_enum_name.cpp
    • +
    +
    + + + + diff --git a/git-main/structmgutility_1_1enum__range_3_01rgb__color_01_4-members.html b/git-main/structmgutility_1_1enum__range_3_01rgb__color_01_4-members.html new file mode 100644 index 0000000..b5bd27e --- /dev/null +++ b/git-main/structmgutility_1_1enum__range_3_01rgb__color_01_4-members.html @@ -0,0 +1,95 @@ + + + + + + + + + enum_name: Member List + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    mgutility::enum_range< rgb_color > Member List
    +
    +
    + +

    This is the complete list of members for mgutility::enum_range< rgb_color >, including all inherited members.

    + + + +
    max (defined in mgutility::enum_range< rgb_color >)mgutility::enum_range< rgb_color >static
    min (defined in mgutility::enum_range< rgb_color >)mgutility::enum_range< rgb_color >static
    + + + + diff --git a/git-main/structmgutility_1_1enum__range_3_01rgb__color_01_4.html b/git-main/structmgutility_1_1enum__range_3_01rgb__color_01_4.html new file mode 100644 index 0000000..a33add2 --- /dev/null +++ b/git-main/structmgutility_1_1enum__range_3_01rgb__color_01_4.html @@ -0,0 +1,106 @@ + + + + + + + + + enum_name: mgutility::enum_range< rgb_color > Struct Reference + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    mgutility::enum_range< rgb_color > Struct Reference
    +
    +
    + + + + + + +

    +Static Public Attributes

    +static constexpr auto min = -1
     
    +static constexpr auto max = 5
     
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/enum_name/enum_name/example/main.cpp
    • +
    +
    + + + + diff --git a/git-main/structmgutility_1_1nullopt__t-members.html b/git-main/structmgutility_1_1nullopt__t-members.html new file mode 100644 index 0000000..e574ec0 --- /dev/null +++ b/git-main/structmgutility_1_1nullopt__t-members.html @@ -0,0 +1,94 @@ + + + + + + + + + enum_name: Member List + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    mgutility::nullopt_t Member List
    +
    +
    + +

    This is the complete list of members for mgutility::nullopt_t, including all inherited members.

    + + +
    operator optional< T >()mgutility::nullopt_tinline
    + + + + diff --git a/git-main/structmgutility_1_1nullopt__t.html b/git-main/structmgutility_1_1nullopt__t.html new file mode 100644 index 0000000..a8583b4 --- /dev/null +++ b/git-main/structmgutility_1_1nullopt__t.html @@ -0,0 +1,148 @@ + + + + + + + + + enum_name: mgutility::nullopt_t Struct Reference + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    enum_name + +
    +
    +
    + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    mgutility::nullopt_t Struct Reference
    +
    +
    + +

    Represents a null optional. + More...

    + +

    #include <optional.hpp>

    + + + + + + +

    +Public Member Functions

    template<typename T >
    MGUTILITY_CNSTXPR operator optional< T > ()
     Converts nullopt_t to an empty optional.
     
    +

    Detailed Description

    +

    Represents a null optional.

    +

    Member Function Documentation

    + +

    ◆ operator optional< T >()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + +
    MGUTILITY_CNSTXPR mgutility::nullopt_t::operator optional< T > ()
    +
    +inline
    +
    + +

    Converts nullopt_t to an empty optional.

    +
    Template Parameters
    + + +
    TThe type of the optional.
    +
    +
    +
    Returns
    An empty optional.
    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/enum_name/enum_name/include/mgutility/std/optional.hpp
    • +
    +
    + + + + diff --git a/git-main/sync_off.png b/git-main/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/git-main/sync_on.png b/git-main/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/git-main/tab_a.png b/git-main/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/git-main/tab_ad.png b/git-main/tab_ad.png new file mode 100644 index 0000000000000000000000000000000000000000..e34850acfc24be58da6d2fd1ccc6b29cc84fe34d GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QhuH;jv*C{Z|5d*H3V=pKi{In zd2jxLclDRPylmD}^l7{QOtL{vUjO{-WqItb5sQp2h-99b8^^Scr-=2mblCdZuUm?4 jzOJvgvt3{(cjKLW5(A@0qPS@<&}0TrS3j3^P6y&q2{!U5bk+Tso_B!YCpDh>v z{CM*1U8YvQRyBUHt^Ju0W_sq-?;9@_4equ-bavTs=gk796zopr0EBT&m;e9( literal 0 HcmV?d00001 diff --git a/git-main/tab_s.png b/git-main/tab_s.png new file mode 100644 index 0000000000000000000000000000000000000000..ab478c95b67371d700a20869f7de1ddd73522d50 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QuUrLjv*C{Z|^p8HaRdjTwH7) zC?wLlL}}I{)n%R&r+1}IGmDnq;&J#%V6)9VsYhS`O^BVBQlxOUep0c$RENLq#g8A$ z)z7%K_bI&n@J+X_=x}fJoEKed-$<>=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/git-main/tab_sd.png b/git-main/tab_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..757a565ced4730f85c833fb2547d8e199ae68f19 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qq7(&jv*C{Z|_!fH5o7*c=%9% zcILh!EA=pAQKdx-Cdiev=v{eg{8Ht<{e8_NAN~b=)%W>-WDCE0PyDHGemi$BoXwcK z{>e9^za6*c1ilttWw&V+U;WCPlV9{LdC~Ey%_H(qj`xgfES(4Yz5jSTZfCt`4E$0YRsR*S^mTCR^;V&sxC8{l_Cp7w8-YPgg&ebxsLQ00$vXK>z>% literal 0 HcmV?d00001 diff --git a/git-main/tabs.css b/git-main/tabs.css new file mode 100644 index 0000000..fe4854a --- /dev/null +++ b/git-main/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} \ No newline at end of file diff --git a/git-main/version_selector_handler.js b/git-main/version_selector_handler.js new file mode 100644 index 0000000..7f0d1fc --- /dev/null +++ b/git-main/version_selector_handler.js @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: MIT +// Copyright (c) 2024, Oleksandr Koval + +$(function () { + var repoName = window.location.pathname.split('/')[1]; + $.get('/' + repoName + '/version_selector.html', function (data) { + // Inject version selector HTML into the page + $('#projectnumber').html(data); + + // Event listener to handle version selection + document.getElementById('versionSelector').addEventListener('change', function () { + var selectedVersion = this.value; + window.location.href = '/' + repoName + '/' + selectedVersion + '/index.html'; + }); + + // Set the selected option based on the current version + var currentVersion = window.location.pathname.split('/')[2]; + $('#versionSelector').val(currentVersion); + }); +}); \ No newline at end of file