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