0 | module System.UV.Data.Error
  1 |
  2 | import Derive.Prelude
  3 |
  4 | %language ElabReflection
  5 | %default total
  6 |
  7 | public export
  8 | data UVError : Type where
  9 |   E2BIG : UVError
 10 |   EACCES : UVError
 11 |   EADDRINUSE : UVError
 12 |   EADDRNOTAVAIL : UVError
 13 |   EAFNOSUPPORT : UVError
 14 |   EAGAIN : UVError
 15 |   EAI_ADDRFAMILY : UVError
 16 |   EAI_AGAIN : UVError
 17 |   EAI_BADFLAGS : UVError
 18 |   EAI_BADHINTS : UVError
 19 |   EAI_CANCELED : UVError
 20 |   EAI_FAIL : UVError
 21 |   EAI_FAMILY : UVError
 22 |   EAI_MEMORY : UVError
 23 |   EAI_NODATA : UVError
 24 |   EAI_NONAME : UVError
 25 |   EAI_OVERFLOW : UVError
 26 |   EAI_PROTOCOL : UVError
 27 |   EAI_SERVICE : UVError
 28 |   EAI_SOCKTYPE : UVError
 29 |   EALREADY : UVError
 30 |   EBADF : UVError
 31 |   EBUSY : UVError
 32 |   ECANCELED : UVError
 33 |   ECHARSET : UVError
 34 |   ECONNABORTED : UVError
 35 |   ECONNREFUSED : UVError
 36 |   ECONNRESET : UVError
 37 |   EDESTADDRREQ : UVError
 38 |   EEXIST : UVError
 39 |   EFAULT : UVError
 40 |   EFBIG : UVError
 41 |   EHOSTUNREACH : UVError
 42 |   EINTR : UVError
 43 |   EINVAL : UVError
 44 |   EIO : UVError
 45 |   EISCONN : UVError
 46 |   EISDIR : UVError
 47 |   ELOOP : UVError
 48 |   EMFILE : UVError
 49 |   EMSGSIZE : UVError
 50 |   ENAMETOOLONG : UVError
 51 |   ENETDOWN : UVError
 52 |   ENETUNREACH : UVError
 53 |   ENFILE : UVError
 54 |   ENOBUFS : UVError
 55 |   ENODEV : UVError
 56 |   ENOENT : UVError
 57 |   ENOMEM : UVError
 58 |   ENONET : UVError
 59 |   ENOPROTOOPT : UVError
 60 |   ENOSPC : UVError
 61 |   ENOSYS : UVError
 62 |   ENOTCONN : UVError
 63 |   ENOTDIR : UVError
 64 |   ENOTEMPTY : UVError
 65 |   ENOTSOCK : UVError
 66 |   ENOTSUP : UVError
 67 |   EOVERFLOW : UVError
 68 |   EPERM : UVError
 69 |   EPIPE : UVError
 70 |   EPROTO : UVError
 71 |   EPROTONOSUPPORT : UVError
 72 |   EPROTOTYPE : UVError
 73 |   ERANGE : UVError
 74 |   EROFS : UVError
 75 |   ESHUTDOWN : UVError
 76 |   ESPIPE : UVError
 77 |   ESRCH : UVError
 78 |   ETIMEDOUT : UVError
 79 |   ETXTBSY : UVError
 80 |   EXDEV : UVError
 81 |   UNKNOWN : UVError
 82 |   EOF : UVError
 83 |   ENXIO : UVError
 84 |   EMLINK : UVError
 85 |   EHOSTDOWN : UVError
 86 |   EREMOTEIO : UVError
 87 |   ENOTTY : UVError
 88 |   EFTYPE : UVError
 89 |   EILSEQ : UVError
 90 |   ESOCKTNOSUPPORT : UVError
 91 |   ENODATA : UVError
 92 |   EUNATCH : UVError
 93 |
 94 | %runElab derive "UVError" [Show,Eq]
 95 |
 96 | export
 97 | toCode : UVError -> Int32
 98 | toCode E2BIG = (-7)
 99 | toCode EACCES = (-13)
100 | toCode EADDRINUSE = (-98)
101 | toCode EADDRNOTAVAIL = (-99)
102 | toCode EAFNOSUPPORT = (-97)
103 | toCode EAGAIN = (-11)
104 | toCode EAI_ADDRFAMILY = (-3000)
105 | toCode EAI_AGAIN = (-3001)
106 | toCode EAI_BADFLAGS = (-3002)
107 | toCode EAI_BADHINTS = (-3013)
108 | toCode EAI_CANCELED = (-3003)
109 | toCode EAI_FAIL = (-3004)
110 | toCode EAI_FAMILY = (-3005)
111 | toCode EAI_MEMORY = (-3006)
112 | toCode EAI_NODATA = (-3007)
113 | toCode EAI_NONAME = (-3008)
114 | toCode EAI_OVERFLOW = (-3009)
115 | toCode EAI_PROTOCOL = (-3014)
116 | toCode EAI_SERVICE = (-3010)
117 | toCode EAI_SOCKTYPE = (-3011)
118 | toCode EALREADY = (-114)
119 | toCode EBADF = (-9)
120 | toCode EBUSY = (-16)
121 | toCode ECANCELED = (-125)
122 | toCode ECHARSET = (-4080)
123 | toCode ECONNABORTED = (-103)
124 | toCode ECONNREFUSED = (-111)
125 | toCode ECONNRESET = (-104)
126 | toCode EDESTADDRREQ = (-89)
127 | toCode EEXIST = (-17)
128 | toCode EFAULT = (-14)
129 | toCode EFBIG = (-27)
130 | toCode EHOSTUNREACH = (-113)
131 | toCode EINTR = (-4)
132 | toCode EINVAL = (-22)
133 | toCode EIO = (-5)
134 | toCode EISCONN = (-106)
135 | toCode EISDIR = (-21)
136 | toCode ELOOP = (-40)
137 | toCode EMFILE = (-24)
138 | toCode EMSGSIZE = (-90)
139 | toCode ENAMETOOLONG = (-36)
140 | toCode ENETDOWN = (-100)
141 | toCode ENETUNREACH = (-101)
142 | toCode ENFILE = (-23)
143 | toCode ENOBUFS = (-105)
144 | toCode ENODEV = (-19)
145 | toCode ENOENT = (-2)
146 | toCode ENOMEM = (-12)
147 | toCode ENONET = (-64)
148 | toCode ENOPROTOOPT = (-92)
149 | toCode ENOSPC = (-28)
150 | toCode ENOSYS = (-38)
151 | toCode ENOTCONN = (-107)
152 | toCode ENOTDIR = (-20)
153 | toCode ENOTEMPTY = (-39)
154 | toCode ENOTSOCK = (-88)
155 | toCode ENOTSUP = (-95)
156 | toCode EOVERFLOW = (-75)
157 | toCode EPERM = (-1)
158 | toCode EPIPE = (-32)
159 | toCode EPROTO = (-71)
160 | toCode EPROTONOSUPPORT = (-93)
161 | toCode EPROTOTYPE = (-91)
162 | toCode ERANGE = (-34)
163 | toCode EROFS = (-30)
164 | toCode ESHUTDOWN = (-108)
165 | toCode ESPIPE = (-29)
166 | toCode ESRCH = (-3)
167 | toCode ETIMEDOUT = (-110)
168 | toCode ETXTBSY = (-26)
169 | toCode EXDEV = (-18)
170 | toCode UNKNOWN = (-4094)
171 | toCode EOF = (-4095)
172 | toCode ENXIO = (-6)
173 | toCode EMLINK = (-31)
174 | toCode EHOSTDOWN = (-112)
175 | toCode EREMOTEIO = (-121)
176 | toCode ENOTTY = (-25)
177 | toCode EFTYPE = (-4028)
178 | toCode EILSEQ = (-84)
179 | toCode ESOCKTNOSUPPORT = (-94)
180 | toCode ENODATA = (-61)
181 | toCode EUNATCH = (-49)
182 |
183 | export
184 | fromCode : Int32 -> UVError
185 | fromCode (-7) = E2BIG
186 | fromCode (-13) = EACCES
187 | fromCode (-98) = EADDRINUSE
188 | fromCode (-99) = EADDRNOTAVAIL
189 | fromCode (-97) = EAFNOSUPPORT
190 | fromCode (-11) = EAGAIN
191 | fromCode (-3000) = EAI_ADDRFAMILY
192 | fromCode (-3001) = EAI_AGAIN
193 | fromCode (-3002) = EAI_BADFLAGS
194 | fromCode (-3013) = EAI_BADHINTS
195 | fromCode (-3003) = EAI_CANCELED
196 | fromCode (-3004) = EAI_FAIL
197 | fromCode (-3005) = EAI_FAMILY
198 | fromCode (-3006) = EAI_MEMORY
199 | fromCode (-3007) = EAI_NODATA
200 | fromCode (-3008) = EAI_NONAME
201 | fromCode (-3009) = EAI_OVERFLOW
202 | fromCode (-3014) = EAI_PROTOCOL
203 | fromCode (-3010) = EAI_SERVICE
204 | fromCode (-3011) = EAI_SOCKTYPE
205 | fromCode (-114) = EALREADY
206 | fromCode (-9) = EBADF
207 | fromCode (-16) = EBUSY
208 | fromCode (-125) = ECANCELED
209 | fromCode (-4080) = ECHARSET
210 | fromCode (-103) = ECONNABORTED
211 | fromCode (-111) = ECONNREFUSED
212 | fromCode (-104) = ECONNRESET
213 | fromCode (-89) = EDESTADDRREQ
214 | fromCode (-17) = EEXIST
215 | fromCode (-14) = EFAULT
216 | fromCode (-27) = EFBIG
217 | fromCode (-113) = EHOSTUNREACH
218 | fromCode (-4) = EINTR
219 | fromCode (-22) = EINVAL
220 | fromCode (-5) = EIO
221 | fromCode (-106) = EISCONN
222 | fromCode (-21) = EISDIR
223 | fromCode (-40) = ELOOP
224 | fromCode (-24) = EMFILE
225 | fromCode (-90) = EMSGSIZE
226 | fromCode (-36) = ENAMETOOLONG
227 | fromCode (-100) = ENETDOWN
228 | fromCode (-101) = ENETUNREACH
229 | fromCode (-23) = ENFILE
230 | fromCode (-105) = ENOBUFS
231 | fromCode (-19) = ENODEV
232 | fromCode (-2) = ENOENT
233 | fromCode (-12) = ENOMEM
234 | fromCode (-64) = ENONET
235 | fromCode (-92) = ENOPROTOOPT
236 | fromCode (-28) = ENOSPC
237 | fromCode (-38) = ENOSYS
238 | fromCode (-107) = ENOTCONN
239 | fromCode (-20) = ENOTDIR
240 | fromCode (-39) = ENOTEMPTY
241 | fromCode (-88) = ENOTSOCK
242 | fromCode (-95) = ENOTSUP
243 | fromCode (-75) = EOVERFLOW
244 | fromCode (-1) = EPERM
245 | fromCode (-32) = EPIPE
246 | fromCode (-71) = EPROTO
247 | fromCode (-93) = EPROTONOSUPPORT
248 | fromCode (-91) = EPROTOTYPE
249 | fromCode (-34) = ERANGE
250 | fromCode (-30) = EROFS
251 | fromCode (-108) = ESHUTDOWN
252 | fromCode (-29) = ESPIPE
253 | fromCode (-3) = ESRCH
254 | fromCode (-110) = ETIMEDOUT
255 | fromCode (-26) = ETXTBSY
256 | fromCode (-18) = EXDEV
257 | fromCode (-4094) = UNKNOWN
258 | fromCode (-4095) = EOF
259 | fromCode (-6) = ENXIO
260 | fromCode (-31) = EMLINK
261 | fromCode (-112) = EHOSTDOWN
262 | fromCode (-121) = EREMOTEIO
263 | fromCode (-25) = ENOTTY
264 | fromCode (-4028) = EFTYPE
265 | fromCode (-84) = EILSEQ
266 | fromCode (-94) = ESOCKTNOSUPPORT
267 | fromCode (-61) = ENODATA
268 | fromCode (-49) = EUNATCH
269 | fromCode _ = UNKNOWN
270 |
271 | %foreign "C:uv_strerror,libuv-idris"
272 | uv_strerror : Int32 -> String
273 |
274 | export %inline
275 | errorMsg : UVError -> String
276 | errorMsg = uv_strerror . toCode
277 |
278 | export %inline
279 | Interpolation UVError where
280 |   interpolate err = "\{errorMsg err} (\{show err})"
281 |