1///|
2type Signal
3
4///|
5extern "c" fn uv_signal_make() -> type Signal
Signal = "moonbit_uv_signal_make"
6
7///|
8extern "c" fn uv_signal_init(uv : type Loop Bytes
Loop, signal : type Signal
Signal) -> Int
Int = "moonbit_uv_signal_init"
9
10///|
11pub fn type Signal
Signal::(self : Loop) -> Signal!Errno
new(Loop
self : type Loop Bytes
Loop) -> type Signal
Signal!type! Errno Status
Errno {
12 let Signal
signal = () -> Signal
uv_signal_make()
13 let Int
status = (uv : Loop, signal : Signal) -> Int
uv_signal_init(Loop
self, Signal
signal)
14 if Int
status (self_ : Int, other : Int) -> Bool
< 0 {
15 raise type! Errno Status
Errno::(errno : Int) -> Errno
of_int(Int
status)
16 }
17 Signal
signal
18}
19
20///|
21extern "c" fn uv_signal_start(
22 signal : type Signal
Signal,
23 cb : (type Signal
Signal, Int
Int) -> Unit
Unit,
24 signum : Int
Int
25) -> Int
Int = "moonbit_uv_signal_start"
26
27///|
28pub fn type Signal
Signal::(self : Signal, cb : (Signal, Signum) -> Unit, signum : Signum) -> Unit!Errno
start(
29 Signal
self : type Signal
Signal,
30 (Signal, Signum) -> Unit
cb : (type Signal
Signal, type Signum Int
Signum) -> Unit
Unit,
31 Signum
signum : type Signum Int
Signum
32) -> Unit
Unit!type! Errno Status
Errno {
33 fn (Signal, Int) -> Unit
uv_cb(Signal
signal : type Signal
Signal, Int
signum : Int
Int) {
34 (Signal, Signum) -> Unit
cb(Signal
signal, Int
signum)
35 }
36
37 let Int
status = (signal : Signal, cb : (Signal, Int) -> Unit, signum : Int) -> Int
uv_signal_start(Signal
self, (Signal, Int) -> Unit
uv_cb, Signum
signum.Int
_)
38 if Int
status (self_ : Int, other : Int) -> Bool
< 0 {
39 raise type! Errno Status
Errno::(errno : Int) -> Errno
of_int(Int
status)
40 }
41}
42
43///|
44extern "c" fn uv_signal_stop(signal : type Signal
Signal) -> Int
Int = "moonbit_uv_signal_stop"
45
46///|
47pub fn type Signal
Signal::(self : Signal) -> Unit!Errno
stop(Signal
self : type Signal
Signal) -> Unit
Unit!type! Errno Status
Errno {
48 let Int
status = (signal : Signal) -> Int
uv_signal_stop(Signal
self)
49 if Int
status (self_ : Int, other : Int) -> Bool
< 0 {
50 raise type! Errno Status
Errno::(errno : Int) -> Errno
of_int(Int
status)
51 }
52}
53
54///|
55extern "c" fn uv_SIGHUP() -> Int
Int = "moonbit_uv_SIGHUP"
56
57///|
58let Int
_SIGHUP : Int
Int = () -> Int
uv_SIGHUP()
59
60///|
61extern "c" fn uv_SIGINT() -> Int
Int = "moonbit_uv_SIGINT"
62
63///|
64let Int
_SIGINT : Int
Int = () -> Int
uv_SIGINT()
65
66///|
67extern "c" fn uv_SIGQUIT() -> Int
Int = "moonbit_uv_SIGQUIT"
68
69///|
70let Int
_SIGQUIT : Int
Int = () -> Int
uv_SIGQUIT()
71
72///|
73extern "c" fn uv_SIGABRT() -> Int
Int = "moonbit_uv_SIGABRT"
74
75///|
76let Int
_SIGABRT : Int
Int = () -> Int
uv_SIGABRT()
77
78///|
79extern "c" fn uv_SIGTERM() -> Int
Int = "moonbit_uv_SIGTERM"
80
81///|
82let Int
_SIGTERM : Int
Int = () -> Int
uv_SIGTERM()
83
84///|
85extern "c" fn uv_SIGWINCH() -> Int
Int = "moonbit_uv_SIGWINCH"
86
87///|
88let Int
_SIGWINCH : Int
Int = () -> Int
uv_SIGWINCH()
89
90///|
91extern "c" fn uv_SIGPIPE() -> Int
Int = "moonbit_uv_SIGPIPE"
92
93///|
94let Int
_SIGPIPE : Int
Int = () -> Int
uv_SIGPIPE()
95
96///|
97type Signum Int
Int
98
99///|
100pub fn type Signum Int
Signum::() -> Signum
sighup() -> type Signum Int
Signum {
101 Int
_SIGHUP
102}
103
104///|
105pub fn type Signum Int
Signum::() -> Signum
sigint() -> type Signum Int
Signum {
106 Int
_SIGINT
107}
108
109///|
110pub fn type Signum Int
Signum::() -> Signum
sigquit() -> type Signum Int
Signum {
111 Int
_SIGQUIT
112}
113
114///|
115pub fn type Signum Int
Signum::() -> Signum
sigabrt() -> type Signum Int
Signum {
116 Int
_SIGABRT
117}
118
119///|
120pub fn type Signum Int
Signum::() -> Signum
sigterm() -> type Signum Int
Signum {
121 Int
_SIGTERM
122}
123
124///|
125pub fn type Signum Int
Signum::() -> Signum
sigwinch() -> type Signum Int
Signum {
126 Int
_SIGWINCH
127}
128
129///|
130pub fn type Signum Int
Signum::() -> Signum!Errno
sigpipe() -> type Signum Int
Signum!type! Errno Status
Errno {
131 if Int
_SIGPIPE (self : Int, other : Int) -> Bool
Compares two integers for equality.
Parameters:
self : The first integer to compare.
other : The second integer to compare.
Returns true if both integers have the same value, false otherwise.
Example:
test "Int::op_equal" {
inspect(42 == 42, content="true")
inspect(42 == -42, content="false")
}
== -1 {
132 raise (Status) -> Errno
Errno(Status::Status
ENOSYS)
133 } else {
134 Int
_SIGPIPE
135 }
136}
137