LCOV - code coverage report
Current view: top level - engine/input/keyboard - key.hpp (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 246 246
Test Date: 2026-03-11 04:45:14 Functions: 100.0 % 1 1

            Line data    Source code
       1              : #pragma once
       2              : 
       3              : #include <cstdint>
       4              : #include <string_view>
       5              : 
       6              : namespace jage::engine::input::keyboard {
       7              : enum class key : std::uint8_t {
       8              :   unidentified,
       9              :   spacebar,
      10              :   a,
      11              :   b,
      12              :   c,
      13              :   d,
      14              :   e,
      15              :   f,
      16              :   g,
      17              :   h,
      18              :   i,
      19              :   j,
      20              :   k,
      21              :   l,
      22              :   m,
      23              :   n,
      24              :   o,
      25              :   p,
      26              :   q,
      27              :   r,
      28              :   s,
      29              :   t,
      30              :   u,
      31              :   v,
      32              :   w,
      33              :   x,
      34              :   y,
      35              :   z,
      36              :   F1,
      37              :   F2,
      38              :   F3,
      39              :   F4,
      40              :   F5,
      41              :   F6,
      42              :   F7,
      43              :   F8,
      44              :   F9,
      45              :   F10,
      46              :   F11,
      47              :   F12,
      48              :   F13,
      49              :   F14,
      50              :   F15,
      51              :   F16,
      52              :   F17,
      53              :   F18,
      54              :   F19,
      55              :   F20,
      56              :   F21,
      57              :   F22,
      58              :   F23,
      59              :   F24,
      60              :   execute,
      61              :   _0,
      62              :   _1,
      63              :   _2,
      64              :   _3,
      65              :   _4,
      66              :   _5,
      67              :   _6,
      68              :   _7,
      69              :   _8,
      70              :   _9,
      71              :   apostrophe,
      72              :   comma,
      73              :   minus,
      74              :   period,
      75              :   slash,
      76              :   semicolon,
      77              :   equal,
      78              :   left_bracket,
      79              :   backslash,
      80              :   right_bracket,
      81              :   grave_accent,
      82              :   arrow_up,
      83              :   arrow_down,
      84              :   arrow_left,
      85              :   arrow_right,
      86              :   insert,
      87              :   delete_key,
      88              :   home,
      89              :   end,
      90              :   page_up,
      91              :   page_down,
      92              :   enter,
      93              :   tab,
      94              :   backspace,
      95              :   caps_lock,
      96              :   left_shift,
      97              :   right_shift,
      98              :   left_control,
      99              :   right_control,
     100              :   left_alt,
     101              :   right_alt,
     102              :   left_super,
     103              :   right_super,
     104              :   menu,
     105              :   print_screen,
     106              :   scroll_lock,
     107              :   num_lock,
     108              :   pause,
     109              :   kp_0,
     110              :   kp_1,
     111              :   kp_2,
     112              :   kp_3,
     113              :   kp_4,
     114              :   kp_5,
     115              :   kp_6,
     116              :   kp_7,
     117              :   kp_8,
     118              :   kp_9,
     119              :   kp_decimal,
     120              :   kp_divide,
     121              :   kp_multiply,
     122              :   kp_subtract,
     123              :   kp_add,
     124              :   kp_enter,
     125              :   kp_equal,
     126              :   world_1,
     127              :   world_2,
     128              :   escape,
     129              :   BEGIN = unidentified,
     130              :   END = escape,
     131              : };
     132              : 
     133              : [[nodiscard]] constexpr auto
     134          130 : serialize(const key input_key) -> std::string_view {
     135          130 :   switch (input_key) {
     136            1 :   case key::unidentified:
     137            1 :     return "unidentified";
     138            2 :   case key::spacebar:
     139            2 :     return "spacebar";
     140            3 :   case key::a:
     141            3 :     return "a";
     142            1 :   case key::b:
     143            1 :     return "b";
     144            1 :   case key::c:
     145            1 :     return "c";
     146            1 :   case key::d:
     147            1 :     return "d";
     148            1 :   case key::e:
     149            1 :     return "e";
     150            1 :   case key::f:
     151            1 :     return "f";
     152            1 :   case key::g:
     153            1 :     return "g";
     154            1 :   case key::h:
     155            1 :     return "h";
     156            1 :   case key::i:
     157            1 :     return "i";
     158            1 :   case key::j:
     159            1 :     return "j";
     160            1 :   case key::k:
     161            1 :     return "k";
     162            1 :   case key::l:
     163            1 :     return "l";
     164            1 :   case key::m:
     165            1 :     return "m";
     166            1 :   case key::n:
     167            1 :     return "n";
     168            1 :   case key::o:
     169            1 :     return "o";
     170            1 :   case key::p:
     171            1 :     return "p";
     172            1 :   case key::q:
     173            1 :     return "q";
     174            1 :   case key::r:
     175            1 :     return "r";
     176            1 :   case key::s:
     177            1 :     return "s";
     178            1 :   case key::t:
     179            1 :     return "t";
     180            1 :   case key::u:
     181            1 :     return "u";
     182            1 :   case key::v:
     183            1 :     return "v";
     184            1 :   case key::w:
     185            1 :     return "w";
     186            1 :   case key::x:
     187            1 :     return "x";
     188            1 :   case key::y:
     189            1 :     return "y";
     190            1 :   case key::z:
     191            1 :     return "z";
     192            2 :   case key::F1:
     193            2 :     return "F1";
     194            1 :   case key::F2:
     195            1 :     return "F2";
     196            1 :   case key::F3:
     197            1 :     return "F3";
     198            1 :   case key::F4:
     199            1 :     return "F4";
     200            1 :   case key::F5:
     201            1 :     return "F5";
     202            1 :   case key::F6:
     203            1 :     return "F6";
     204            1 :   case key::F7:
     205            1 :     return "F7";
     206            1 :   case key::F8:
     207            1 :     return "F8";
     208            1 :   case key::F9:
     209            1 :     return "F9";
     210            1 :   case key::F10:
     211            1 :     return "F10";
     212            1 :   case key::F11:
     213            1 :     return "F11";
     214            1 :   case key::F12:
     215            1 :     return "F12";
     216            1 :   case key::F13:
     217            1 :     return "F13";
     218            1 :   case key::F14:
     219            1 :     return "F14";
     220            1 :   case key::F15:
     221            1 :     return "F15";
     222            1 :   case key::F16:
     223            1 :     return "F16";
     224            1 :   case key::F17:
     225            1 :     return "F17";
     226            1 :   case key::F18:
     227            1 :     return "F18";
     228            1 :   case key::F19:
     229            1 :     return "F19";
     230            1 :   case key::F20:
     231            1 :     return "F20";
     232            1 :   case key::F21:
     233            1 :     return "F21";
     234            1 :   case key::F22:
     235            1 :     return "F22";
     236            1 :   case key::F23:
     237            1 :     return "F23";
     238            1 :   case key::F24:
     239            1 :     return "F24";
     240            1 :   case key::execute:
     241            1 :     return "execute";
     242            1 :   case key::_0:
     243            1 :     return "0";
     244            1 :   case key::_1:
     245            1 :     return "1";
     246            1 :   case key::_2:
     247            1 :     return "2";
     248            1 :   case key::_3:
     249            1 :     return "3";
     250            1 :   case key::_4:
     251            1 :     return "4";
     252            1 :   case key::_5:
     253            1 :     return "5";
     254            1 :   case key::_6:
     255            1 :     return "6";
     256            1 :   case key::_7:
     257            1 :     return "7";
     258            1 :   case key::_8:
     259            1 :     return "8";
     260            1 :   case key::_9:
     261            1 :     return "9";
     262            1 :   case key::apostrophe:
     263            1 :     return "apostrophe";
     264            1 :   case key::comma:
     265            1 :     return "comma";
     266            1 :   case key::minus:
     267            1 :     return "minus";
     268            1 :   case key::period:
     269            1 :     return "period";
     270            1 :   case key::slash:
     271            1 :     return "slash";
     272            1 :   case key::semicolon:
     273            1 :     return "semicolon";
     274            1 :   case key::equal:
     275            1 :     return "equal";
     276            1 :   case key::left_bracket:
     277            1 :     return "left_bracket";
     278            1 :   case key::backslash:
     279            1 :     return "backslash";
     280            1 :   case key::right_bracket:
     281            1 :     return "right_bracket";
     282            1 :   case key::grave_accent:
     283            1 :     return "grave_accent";
     284            1 :   case key::arrow_up:
     285            1 :     return "arrow_up";
     286            1 :   case key::arrow_down:
     287            1 :     return "arrow_down";
     288            1 :   case key::arrow_left:
     289            1 :     return "arrow_left";
     290            1 :   case key::arrow_right:
     291            1 :     return "arrow_right";
     292            1 :   case key::insert:
     293            1 :     return "insert";
     294            1 :   case key::delete_key:
     295            1 :     return "delete_key";
     296            1 :   case key::home:
     297            1 :     return "home";
     298            1 :   case key::end:
     299            1 :     return "end";
     300            1 :   case key::page_up:
     301            1 :     return "page_up";
     302            1 :   case key::page_down:
     303            1 :     return "page_down";
     304            1 :   case key::enter:
     305            1 :     return "enter";
     306            1 :   case key::tab:
     307            1 :     return "tab";
     308            1 :   case key::backspace:
     309            1 :     return "backspace";
     310            1 :   case key::caps_lock:
     311            1 :     return "caps_lock";
     312            1 :   case key::left_shift:
     313            1 :     return "left_shift";
     314            1 :   case key::right_shift:
     315            1 :     return "right_shift";
     316            1 :   case key::left_control:
     317            1 :     return "left_control";
     318            1 :   case key::right_control:
     319            1 :     return "right_control";
     320            1 :   case key::left_alt:
     321            1 :     return "left_alt";
     322            1 :   case key::right_alt:
     323            1 :     return "right_alt";
     324            1 :   case key::left_super:
     325            1 :     return "left_super";
     326            1 :   case key::right_super:
     327            1 :     return "right_super";
     328            1 :   case key::menu:
     329            1 :     return "menu";
     330            1 :   case key::print_screen:
     331            1 :     return "print_screen";
     332            1 :   case key::scroll_lock:
     333            1 :     return "scroll_lock";
     334            1 :   case key::num_lock:
     335            1 :     return "num_lock";
     336            1 :   case key::pause:
     337            1 :     return "pause";
     338            1 :   case key::kp_0:
     339            1 :     return "kp_0";
     340            1 :   case key::kp_1:
     341            1 :     return "kp_1";
     342            1 :   case key::kp_2:
     343            1 :     return "kp_2";
     344            1 :   case key::kp_3:
     345            1 :     return "kp_3";
     346            1 :   case key::kp_4:
     347            1 :     return "kp_4";
     348            1 :   case key::kp_5:
     349            1 :     return "kp_5";
     350            1 :   case key::kp_6:
     351            1 :     return "kp_6";
     352            1 :   case key::kp_7:
     353            1 :     return "kp_7";
     354            1 :   case key::kp_8:
     355            1 :     return "kp_8";
     356            1 :   case key::kp_9:
     357            1 :     return "kp_9";
     358            1 :   case key::kp_decimal:
     359            1 :     return "kp_decimal";
     360            1 :   case key::kp_divide:
     361            1 :     return "kp_divide";
     362            1 :   case key::kp_multiply:
     363            1 :     return "kp_multiply";
     364            1 :   case key::kp_subtract:
     365            1 :     return "kp_subtract";
     366            1 :   case key::kp_add:
     367            1 :     return "kp_add";
     368            1 :   case key::kp_enter:
     369            1 :     return "kp_enter";
     370            1 :   case key::kp_equal:
     371            1 :     return "kp_equal";
     372            1 :   case key::world_1:
     373            1 :     return "world_1";
     374            1 :   case key::world_2:
     375            1 :     return "world_2";
     376            4 :   case key::escape:
     377            4 :     return "escape";
     378            2 :   default:
     379            2 :     return "unknown enumerator";
     380              :   }
     381              : }
     382              : 
     383              : } // namespace jage::engine::input::keyboard
        

Generated by: LCOV version 2.0-1