#[repr(u32)]
pub enum SDL_Scancode {
Show 244 variants SDL_SCANCODE_UNKNOWN, SDL_SCANCODE_A, SDL_SCANCODE_B, SDL_SCANCODE_C, SDL_SCANCODE_D, SDL_SCANCODE_E, SDL_SCANCODE_F, SDL_SCANCODE_G, SDL_SCANCODE_H, SDL_SCANCODE_I, SDL_SCANCODE_J, SDL_SCANCODE_K, SDL_SCANCODE_L, SDL_SCANCODE_M, SDL_SCANCODE_N, SDL_SCANCODE_O, SDL_SCANCODE_P, SDL_SCANCODE_Q, SDL_SCANCODE_R, SDL_SCANCODE_S, SDL_SCANCODE_T, SDL_SCANCODE_U, SDL_SCANCODE_V, SDL_SCANCODE_W, SDL_SCANCODE_X, SDL_SCANCODE_Y, SDL_SCANCODE_Z, SDL_SCANCODE_1, SDL_SCANCODE_2, SDL_SCANCODE_3, SDL_SCANCODE_4, SDL_SCANCODE_5, SDL_SCANCODE_6, SDL_SCANCODE_7, SDL_SCANCODE_8, SDL_SCANCODE_9, SDL_SCANCODE_0, SDL_SCANCODE_RETURN, SDL_SCANCODE_ESCAPE, SDL_SCANCODE_BACKSPACE, SDL_SCANCODE_TAB, SDL_SCANCODE_SPACE, SDL_SCANCODE_MINUS, SDL_SCANCODE_EQUALS, SDL_SCANCODE_LEFTBRACKET, SDL_SCANCODE_RIGHTBRACKET, SDL_SCANCODE_BACKSLASH, SDL_SCANCODE_NONUSHASH, SDL_SCANCODE_SEMICOLON, SDL_SCANCODE_APOSTROPHE, SDL_SCANCODE_GRAVE, SDL_SCANCODE_COMMA, SDL_SCANCODE_PERIOD, SDL_SCANCODE_SLASH, SDL_SCANCODE_CAPSLOCK, SDL_SCANCODE_F1, SDL_SCANCODE_F2, SDL_SCANCODE_F3, SDL_SCANCODE_F4, SDL_SCANCODE_F5, SDL_SCANCODE_F6, SDL_SCANCODE_F7, SDL_SCANCODE_F8, SDL_SCANCODE_F9, SDL_SCANCODE_F10, SDL_SCANCODE_F11, SDL_SCANCODE_F12, SDL_SCANCODE_PRINTSCREEN, SDL_SCANCODE_SCROLLLOCK, SDL_SCANCODE_PAUSE, SDL_SCANCODE_INSERT, SDL_SCANCODE_HOME, SDL_SCANCODE_PAGEUP, SDL_SCANCODE_DELETE, SDL_SCANCODE_END, SDL_SCANCODE_PAGEDOWN, SDL_SCANCODE_RIGHT, SDL_SCANCODE_LEFT, SDL_SCANCODE_DOWN, SDL_SCANCODE_UP, SDL_SCANCODE_NUMLOCKCLEAR, SDL_SCANCODE_KP_DIVIDE, SDL_SCANCODE_KP_MULTIPLY, SDL_SCANCODE_KP_MINUS, SDL_SCANCODE_KP_PLUS, SDL_SCANCODE_KP_ENTER, SDL_SCANCODE_KP_1, SDL_SCANCODE_KP_2, SDL_SCANCODE_KP_3, SDL_SCANCODE_KP_4, SDL_SCANCODE_KP_5, SDL_SCANCODE_KP_6, SDL_SCANCODE_KP_7, SDL_SCANCODE_KP_8, SDL_SCANCODE_KP_9, SDL_SCANCODE_KP_0, SDL_SCANCODE_KP_PERIOD, SDL_SCANCODE_NONUSBACKSLASH, SDL_SCANCODE_APPLICATION, SDL_SCANCODE_POWER, SDL_SCANCODE_KP_EQUALS, SDL_SCANCODE_F13, SDL_SCANCODE_F14, SDL_SCANCODE_F15, SDL_SCANCODE_F16, SDL_SCANCODE_F17, SDL_SCANCODE_F18, SDL_SCANCODE_F19, SDL_SCANCODE_F20, SDL_SCANCODE_F21, SDL_SCANCODE_F22, SDL_SCANCODE_F23, SDL_SCANCODE_F24, SDL_SCANCODE_EXECUTE, SDL_SCANCODE_HELP, SDL_SCANCODE_MENU, SDL_SCANCODE_SELECT, SDL_SCANCODE_STOP, SDL_SCANCODE_AGAIN, SDL_SCANCODE_UNDO, SDL_SCANCODE_CUT, SDL_SCANCODE_COPY, SDL_SCANCODE_PASTE, SDL_SCANCODE_FIND, SDL_SCANCODE_MUTE, SDL_SCANCODE_VOLUMEUP, SDL_SCANCODE_VOLUMEDOWN, SDL_SCANCODE_KP_COMMA, SDL_SCANCODE_KP_EQUALSAS400, SDL_SCANCODE_INTERNATIONAL1, SDL_SCANCODE_INTERNATIONAL2, SDL_SCANCODE_INTERNATIONAL3, SDL_SCANCODE_INTERNATIONAL4, SDL_SCANCODE_INTERNATIONAL5, SDL_SCANCODE_INTERNATIONAL6, SDL_SCANCODE_INTERNATIONAL7, SDL_SCANCODE_INTERNATIONAL8, SDL_SCANCODE_INTERNATIONAL9, SDL_SCANCODE_LANG1, SDL_SCANCODE_LANG2, SDL_SCANCODE_LANG3, SDL_SCANCODE_LANG4, SDL_SCANCODE_LANG5, SDL_SCANCODE_LANG6, SDL_SCANCODE_LANG7, SDL_SCANCODE_LANG8, SDL_SCANCODE_LANG9, SDL_SCANCODE_ALTERASE, SDL_SCANCODE_SYSREQ, SDL_SCANCODE_CANCEL, SDL_SCANCODE_CLEAR, SDL_SCANCODE_PRIOR, SDL_SCANCODE_RETURN2, SDL_SCANCODE_SEPARATOR, SDL_SCANCODE_OUT, SDL_SCANCODE_OPER, SDL_SCANCODE_CLEARAGAIN, SDL_SCANCODE_CRSEL, SDL_SCANCODE_EXSEL, SDL_SCANCODE_KP_00, SDL_SCANCODE_KP_000, SDL_SCANCODE_THOUSANDSSEPARATOR, SDL_SCANCODE_DECIMALSEPARATOR, SDL_SCANCODE_CURRENCYUNIT, SDL_SCANCODE_CURRENCYSUBUNIT, SDL_SCANCODE_KP_LEFTPAREN, SDL_SCANCODE_KP_RIGHTPAREN, SDL_SCANCODE_KP_LEFTBRACE, SDL_SCANCODE_KP_RIGHTBRACE, SDL_SCANCODE_KP_TAB, SDL_SCANCODE_KP_BACKSPACE, SDL_SCANCODE_KP_A, SDL_SCANCODE_KP_B, SDL_SCANCODE_KP_C, SDL_SCANCODE_KP_D, SDL_SCANCODE_KP_E, SDL_SCANCODE_KP_F, SDL_SCANCODE_KP_XOR, SDL_SCANCODE_KP_POWER, SDL_SCANCODE_KP_PERCENT, SDL_SCANCODE_KP_LESS, SDL_SCANCODE_KP_GREATER, SDL_SCANCODE_KP_AMPERSAND, SDL_SCANCODE_KP_DBLAMPERSAND, SDL_SCANCODE_KP_VERTICALBAR, SDL_SCANCODE_KP_DBLVERTICALBAR, SDL_SCANCODE_KP_COLON, SDL_SCANCODE_KP_HASH, SDL_SCANCODE_KP_SPACE, SDL_SCANCODE_KP_AT, SDL_SCANCODE_KP_EXCLAM, SDL_SCANCODE_KP_MEMSTORE, SDL_SCANCODE_KP_MEMRECALL, SDL_SCANCODE_KP_MEMCLEAR, SDL_SCANCODE_KP_MEMADD, SDL_SCANCODE_KP_MEMSUBTRACT, SDL_SCANCODE_KP_MEMMULTIPLY, SDL_SCANCODE_KP_MEMDIVIDE, SDL_SCANCODE_KP_PLUSMINUS, SDL_SCANCODE_KP_CLEAR, SDL_SCANCODE_KP_CLEARENTRY, SDL_SCANCODE_KP_BINARY, SDL_SCANCODE_KP_OCTAL, SDL_SCANCODE_KP_DECIMAL, SDL_SCANCODE_KP_HEXADECIMAL, SDL_SCANCODE_LCTRL, SDL_SCANCODE_LSHIFT, SDL_SCANCODE_LALT, SDL_SCANCODE_LGUI, SDL_SCANCODE_RCTRL, SDL_SCANCODE_RSHIFT, SDL_SCANCODE_RALT, SDL_SCANCODE_RGUI, SDL_SCANCODE_MODE, SDL_SCANCODE_AUDIONEXT, SDL_SCANCODE_AUDIOPREV, SDL_SCANCODE_AUDIOSTOP, SDL_SCANCODE_AUDIOPLAY, SDL_SCANCODE_AUDIOMUTE, SDL_SCANCODE_MEDIASELECT, SDL_SCANCODE_WWW, SDL_SCANCODE_MAIL, SDL_SCANCODE_CALCULATOR, SDL_SCANCODE_COMPUTER, SDL_SCANCODE_AC_SEARCH, SDL_SCANCODE_AC_HOME, SDL_SCANCODE_AC_BACK, SDL_SCANCODE_AC_FORWARD, SDL_SCANCODE_AC_STOP, SDL_SCANCODE_AC_REFRESH, SDL_SCANCODE_AC_BOOKMARKS, SDL_SCANCODE_BRIGHTNESSDOWN, SDL_SCANCODE_BRIGHTNESSUP, SDL_SCANCODE_DISPLAYSWITCH, SDL_SCANCODE_KBDILLUMTOGGLE, SDL_SCANCODE_KBDILLUMDOWN, SDL_SCANCODE_KBDILLUMUP, SDL_SCANCODE_EJECT, SDL_SCANCODE_SLEEP, SDL_SCANCODE_APP1, SDL_SCANCODE_APP2, SDL_SCANCODE_AUDIOREWIND, SDL_SCANCODE_AUDIOFASTFORWARD, SDL_NUM_SCANCODES,
}
Expand description

\brief The SDL keyboard scancode representation.

Values of this type are used to represent keyboard keys, among other places in the \link SDL_Keysym::scancode key.keysym.scancode \endlink field of the SDL_Event structure.

The values in this enumeration are based on the USB usage page standard: http://www.usb.org/developers/hidpage/Hut1_12v2.pdf

Variants

SDL_SCANCODE_UNKNOWN

SDL_SCANCODE_A

SDL_SCANCODE_B

SDL_SCANCODE_C

SDL_SCANCODE_D

SDL_SCANCODE_E

SDL_SCANCODE_F

SDL_SCANCODE_G

SDL_SCANCODE_H

SDL_SCANCODE_I

SDL_SCANCODE_J

SDL_SCANCODE_K

SDL_SCANCODE_L

SDL_SCANCODE_M

SDL_SCANCODE_N

SDL_SCANCODE_O

SDL_SCANCODE_P

SDL_SCANCODE_Q

SDL_SCANCODE_R

SDL_SCANCODE_S

SDL_SCANCODE_T

SDL_SCANCODE_U

SDL_SCANCODE_V

SDL_SCANCODE_W

SDL_SCANCODE_X

SDL_SCANCODE_Y

SDL_SCANCODE_Z

SDL_SCANCODE_1

SDL_SCANCODE_2

SDL_SCANCODE_3

SDL_SCANCODE_4

SDL_SCANCODE_5

SDL_SCANCODE_6

SDL_SCANCODE_7

SDL_SCANCODE_8

SDL_SCANCODE_9

SDL_SCANCODE_0

SDL_SCANCODE_RETURN

SDL_SCANCODE_ESCAPE

SDL_SCANCODE_BACKSPACE

SDL_SCANCODE_TAB

SDL_SCANCODE_SPACE

SDL_SCANCODE_MINUS

SDL_SCANCODE_EQUALS

SDL_SCANCODE_LEFTBRACKET

SDL_SCANCODE_RIGHTBRACKET

SDL_SCANCODE_BACKSLASH

< Located at the lower left of the return key on ISO keyboards and at the right end of the QWERTY row on ANSI keyboards. Produces REVERSE SOLIDUS (backslash) and VERTICAL LINE in a US layout, REVERSE SOLIDUS and VERTICAL LINE in a UK Mac layout, NUMBER SIGN and TILDE in a UK Windows layout, DOLLAR SIGN and POUND SIGN in a Swiss German layout, NUMBER SIGN and APOSTROPHE in a German layout, GRAVE ACCENT and POUND SIGN in a French Mac layout, and ASTERISK and MICRO SIGN in a French Windows layout.

SDL_SCANCODE_NONUSHASH

< ISO USB keyboards actually use this code instead of 49 for the same key, but all OSes I’ve seen treat the two codes identically. So, as an implementor, unless your keyboard generates both of those codes and your OS treats them differently, you should generate SDL_SCANCODE_BACKSLASH instead of this code. As a user, you should not rely on this code because SDL will never generate it with most (all?) keyboards.

SDL_SCANCODE_SEMICOLON

SDL_SCANCODE_APOSTROPHE

SDL_SCANCODE_GRAVE

< Located in the top left corner (on both ANSI and ISO keyboards). Produces GRAVE ACCENT and TILDE in a US Windows layout and in US and UK Mac layouts on ANSI keyboards, GRAVE ACCENT and NOT SIGN in a UK Windows layout, SECTION SIGN and PLUS-MINUS SIGN in US and UK Mac layouts on ISO keyboards, SECTION SIGN and DEGREE SIGN in a Swiss German layout (Mac: only on ISO keyboards), CIRCUMFLEX ACCENT and DEGREE SIGN in a German layout (Mac: only on ISO keyboards), SUPERSCRIPT TWO and TILDE in a French Windows layout, COMMERCIAL AT and NUMBER SIGN in a French Mac layout on ISO keyboards, and LESS-THAN SIGN and GREATER-THAN SIGN in a Swiss German, German, or French Mac layout on ANSI keyboards.

SDL_SCANCODE_COMMA

SDL_SCANCODE_PERIOD

SDL_SCANCODE_SLASH

SDL_SCANCODE_CAPSLOCK

SDL_SCANCODE_F1

SDL_SCANCODE_F2

SDL_SCANCODE_F3

SDL_SCANCODE_F4

SDL_SCANCODE_F5

SDL_SCANCODE_F6

SDL_SCANCODE_F7

SDL_SCANCODE_F8

SDL_SCANCODE_F9

SDL_SCANCODE_F10

SDL_SCANCODE_F11

SDL_SCANCODE_F12

SDL_SCANCODE_PRINTSCREEN

SDL_SCANCODE_SCROLLLOCK

SDL_SCANCODE_PAUSE

SDL_SCANCODE_INSERT

< insert on PC, help on some Mac keyboards (but does send code 73, not 117)

SDL_SCANCODE_HOME

SDL_SCANCODE_PAGEUP

SDL_SCANCODE_DELETE

SDL_SCANCODE_END

SDL_SCANCODE_PAGEDOWN

SDL_SCANCODE_RIGHT

SDL_SCANCODE_LEFT

SDL_SCANCODE_DOWN

SDL_SCANCODE_UP

SDL_SCANCODE_NUMLOCKCLEAR

< num lock on PC, clear on Mac keyboards

SDL_SCANCODE_KP_DIVIDE

SDL_SCANCODE_KP_MULTIPLY

SDL_SCANCODE_KP_MINUS

SDL_SCANCODE_KP_PLUS

SDL_SCANCODE_KP_ENTER

SDL_SCANCODE_KP_1

SDL_SCANCODE_KP_2

SDL_SCANCODE_KP_3

SDL_SCANCODE_KP_4

SDL_SCANCODE_KP_5

SDL_SCANCODE_KP_6

SDL_SCANCODE_KP_7

SDL_SCANCODE_KP_8

SDL_SCANCODE_KP_9

SDL_SCANCODE_KP_0

SDL_SCANCODE_KP_PERIOD

SDL_SCANCODE_NONUSBACKSLASH

< This is the additional key that ISO keyboards have over ANSI ones, located between left shift and Y. Produces GRAVE ACCENT and TILDE in a US or UK Mac layout, REVERSE SOLIDUS (backslash) and VERTICAL LINE in a US or UK Windows layout, and LESS-THAN SIGN and GREATER-THAN SIGN in a Swiss German, German, or French layout.

SDL_SCANCODE_APPLICATION

< windows contextual menu, compose

SDL_SCANCODE_POWER

< The USB document says this is a status flag, not a physical key - but some Mac keyboards do have a power key.

SDL_SCANCODE_KP_EQUALS

SDL_SCANCODE_F13

SDL_SCANCODE_F14

SDL_SCANCODE_F15

SDL_SCANCODE_F16

SDL_SCANCODE_F17

SDL_SCANCODE_F18

SDL_SCANCODE_F19

SDL_SCANCODE_F20

SDL_SCANCODE_F21

SDL_SCANCODE_F22

SDL_SCANCODE_F23

SDL_SCANCODE_F24

SDL_SCANCODE_EXECUTE

SDL_SCANCODE_HELP

SDL_SCANCODE_MENU

SDL_SCANCODE_SELECT

SDL_SCANCODE_STOP

SDL_SCANCODE_AGAIN

< redo

SDL_SCANCODE_UNDO

SDL_SCANCODE_CUT

SDL_SCANCODE_COPY

SDL_SCANCODE_PASTE

SDL_SCANCODE_FIND

SDL_SCANCODE_MUTE

SDL_SCANCODE_VOLUMEUP

SDL_SCANCODE_VOLUMEDOWN

SDL_SCANCODE_KP_COMMA

SDL_SCANCODE_KP_EQUALSAS400

SDL_SCANCODE_INTERNATIONAL1

< used on Asian keyboards, see footnotes in USB doc

SDL_SCANCODE_INTERNATIONAL2

SDL_SCANCODE_INTERNATIONAL3

< Yen

SDL_SCANCODE_INTERNATIONAL4

SDL_SCANCODE_INTERNATIONAL5

SDL_SCANCODE_INTERNATIONAL6

SDL_SCANCODE_INTERNATIONAL7

SDL_SCANCODE_INTERNATIONAL8

SDL_SCANCODE_INTERNATIONAL9

SDL_SCANCODE_LANG1

< Hangul/English toggle

SDL_SCANCODE_LANG2

< Hanja conversion

SDL_SCANCODE_LANG3

< Katakana

SDL_SCANCODE_LANG4

< Hiragana

SDL_SCANCODE_LANG5

< Zenkaku/Hankaku

SDL_SCANCODE_LANG6

< reserved

SDL_SCANCODE_LANG7

< reserved

SDL_SCANCODE_LANG8

< reserved

SDL_SCANCODE_LANG9

< reserved

SDL_SCANCODE_ALTERASE

< Erase-Eaze

SDL_SCANCODE_SYSREQ

SDL_SCANCODE_CANCEL

SDL_SCANCODE_CLEAR

SDL_SCANCODE_PRIOR

SDL_SCANCODE_RETURN2

SDL_SCANCODE_SEPARATOR

SDL_SCANCODE_OUT

SDL_SCANCODE_OPER

SDL_SCANCODE_CLEARAGAIN

SDL_SCANCODE_CRSEL

SDL_SCANCODE_EXSEL

SDL_SCANCODE_KP_00

SDL_SCANCODE_KP_000

SDL_SCANCODE_THOUSANDSSEPARATOR

SDL_SCANCODE_DECIMALSEPARATOR

SDL_SCANCODE_CURRENCYUNIT

SDL_SCANCODE_CURRENCYSUBUNIT

SDL_SCANCODE_KP_LEFTPAREN

SDL_SCANCODE_KP_RIGHTPAREN

SDL_SCANCODE_KP_LEFTBRACE

SDL_SCANCODE_KP_RIGHTBRACE

SDL_SCANCODE_KP_TAB

SDL_SCANCODE_KP_BACKSPACE

SDL_SCANCODE_KP_A

SDL_SCANCODE_KP_B

SDL_SCANCODE_KP_C

SDL_SCANCODE_KP_D

SDL_SCANCODE_KP_E

SDL_SCANCODE_KP_F

SDL_SCANCODE_KP_XOR

SDL_SCANCODE_KP_POWER

SDL_SCANCODE_KP_PERCENT

SDL_SCANCODE_KP_LESS

SDL_SCANCODE_KP_GREATER

SDL_SCANCODE_KP_AMPERSAND

SDL_SCANCODE_KP_DBLAMPERSAND

SDL_SCANCODE_KP_VERTICALBAR

SDL_SCANCODE_KP_DBLVERTICALBAR

SDL_SCANCODE_KP_COLON

SDL_SCANCODE_KP_HASH

SDL_SCANCODE_KP_SPACE

SDL_SCANCODE_KP_AT

SDL_SCANCODE_KP_EXCLAM

SDL_SCANCODE_KP_MEMSTORE

SDL_SCANCODE_KP_MEMRECALL

SDL_SCANCODE_KP_MEMCLEAR

SDL_SCANCODE_KP_MEMADD

SDL_SCANCODE_KP_MEMSUBTRACT

SDL_SCANCODE_KP_MEMMULTIPLY

SDL_SCANCODE_KP_MEMDIVIDE

SDL_SCANCODE_KP_PLUSMINUS

SDL_SCANCODE_KP_CLEAR

SDL_SCANCODE_KP_CLEARENTRY

SDL_SCANCODE_KP_BINARY

SDL_SCANCODE_KP_OCTAL

SDL_SCANCODE_KP_DECIMAL

SDL_SCANCODE_KP_HEXADECIMAL

SDL_SCANCODE_LCTRL

SDL_SCANCODE_LSHIFT

SDL_SCANCODE_LALT

< alt, option

SDL_SCANCODE_LGUI

< windows, command (apple), meta

SDL_SCANCODE_RCTRL

SDL_SCANCODE_RSHIFT

SDL_SCANCODE_RALT

< alt gr, option

SDL_SCANCODE_RGUI

< windows, command (apple), meta

SDL_SCANCODE_MODE

< I’m not sure if this is really not covered by any of the above, but since there’s a special KMOD_MODE for it I’m adding it here

SDL_SCANCODE_AUDIONEXT

SDL_SCANCODE_AUDIOPREV

SDL_SCANCODE_AUDIOSTOP

SDL_SCANCODE_AUDIOPLAY

SDL_SCANCODE_AUDIOMUTE

SDL_SCANCODE_MEDIASELECT

SDL_SCANCODE_WWW

SDL_SCANCODE_MAIL

SDL_SCANCODE_CALCULATOR

SDL_SCANCODE_COMPUTER

SDL_SCANCODE_AC_HOME

SDL_SCANCODE_AC_BACK

SDL_SCANCODE_AC_FORWARD

SDL_SCANCODE_AC_STOP

SDL_SCANCODE_AC_REFRESH

SDL_SCANCODE_AC_BOOKMARKS

SDL_SCANCODE_BRIGHTNESSDOWN

SDL_SCANCODE_BRIGHTNESSUP

SDL_SCANCODE_DISPLAYSWITCH

< display mirroring/dual display switch, video mode switch

SDL_SCANCODE_KBDILLUMTOGGLE

SDL_SCANCODE_KBDILLUMDOWN

SDL_SCANCODE_KBDILLUMUP

SDL_SCANCODE_EJECT

SDL_SCANCODE_SLEEP

SDL_SCANCODE_APP1

SDL_SCANCODE_APP2

SDL_SCANCODE_AUDIOREWIND

SDL_SCANCODE_AUDIOFASTFORWARD

SDL_NUM_SCANCODES

< not a key, just marks the number of scancodes for array bounds

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.