// types.mbt - Console type definitions
///|
/// Represents supported console colors.
pub enum ConsoleColor {
Black = 0
DarkBlue = 1
DarkGreen = 2
DarkCyan = 3
DarkRed = 4
DarkMagenta = 5
DarkYellow = 6
Gray = 7
DarkGray = 8
Blue = 9
Green = 10
Cyan = 11
Red = 12
Magenta = 13
Yellow = 14
White = 15
} derive(Show, Eq)
///|
/// Converts a console color to its platform numeric value.
pub fn ConsoleColor::to_int(self : ConsoleColor) -> Int = "%identity"
///|
/// Represents logical key values returned by `read_key`.
pub(all) enum ConsoleKey {
Backspace = 8
Tab = 9
Enter = 13
Escape = 27
Space = 32
PageUp = 33
PageDown = 34
End = 35
Home = 36
LeftArrow = 37
UpArrow = 38
RightArrow = 39
DownArrow = 40
Insert = 45
Delete = 46
D0 = 48
D1 = 49
D2 = 50
D3 = 51
D4 = 52
D5 = 53
D6 = 54
D7 = 55
D8 = 56
D9 = 57
A = 65
B = 66
C = 67
D = 68
E = 69
F = 70
G = 71
H = 72
I = 73
J = 74
K = 75
L = 76
M = 77
N = 78
O = 79
P = 80
Q = 81
R = 82
S = 83
T = 84
U = 85
V = 86
W = 87
X = 88
Y = 89
Z = 90
LeftWindows = 91
RightWindows = 92
Apps = 93
Sleep = 95
NumPad0 = 96
NumPad1 = 97
NumPad2 = 98
NumPad3 = 99
NumPad4 = 100
NumPad5 = 101
NumPad6 = 102
NumPad7 = 103
NumPad8 = 104
NumPad9 = 105
Multiply = 106
Add = 107
Separator = 108
Subtract = 109
Decimal = 110
Divide = 111
F1 = 112
F2 = 113
F3 = 114
F4 = 115
F5 = 116
F6 = 117
F7 = 118
F8 = 119
F9 = 120
F10 = 121
F11 = 122
F12 = 123
F13 = 124
F14 = 125
F15 = 126
F16 = 127
F17 = 128
F18 = 129
F19 = 130
F20 = 131
F21 = 132
F22 = 133
F23 = 134
F24 = 135
} derive(Show, Eq)
///|
/// Converts a console key to its numeric value.
pub fn ConsoleKey::to_int(self : ConsoleKey) -> Int = "%identity"
///|
/// Describes one keyboard event with key value and modifier flags.
pub struct ConsoleKeyInfo {
key_char : Char
key : ConsoleKey
shift : Bool
alt : Bool
control : Bool
}
///|
/// Creates a `ConsoleKeyInfo` value.
pub fn ConsoleKeyInfo::new(
key_char : Char,
key : ConsoleKey,
shift : Bool,
alt : Bool,
control : Bool,
) -> ConsoleKeyInfo {
{ key_char, key, shift, alt, control }
}
///|
/// Represents cancel-signal kinds used by cancel key handlers.
pub(all) enum ConsoleSpecialKey {
ControlC = 0
ControlBreak = 1
}
///|
/// Represents standard process handles (stdin/stdout/stderr).
pub(all) enum StandardHandle {
StandardInput = 0
StandardOutput = 1
StandardError = 2
}