0 | module Node.Stream.Readable
 1 |
 2 | import public Data.Maybe
 3 | import Node.Event.Internal
 4 |
 5 | %foreign nodeOn0 "close"
 6 | ffi_onClose : a -> PrimIO () -> PrimIO ()
 7 |
 8 | export
 9 | unsafeReadableOnClose : HasIO io => a -> IO () -> io ()
10 | unsafeReadableOnClose = on0 ffi_onClose
11 |
12 | %foreign nodeOn1 "data"
13 | ffi_onData : a -> (b -> PrimIO ()) -> PrimIO ()
14 |
15 | export
16 | unsafeReadableOnData : HasIO io => a -> (d -> IO ()) -> io ()
17 | unsafeReadableOnData = on1 ffi_onData
18 |
19 | %foreign nodeOn0 "end"
20 | ffi_onEnd : a -> PrimIO () -> PrimIO ()
21 |
22 | export
23 | unsafeReadableOnEnd : HasIO io => a -> IO () -> io ()
24 | unsafeReadableOnEnd = on0 ffi_onEnd
25 |
26 | %foreign nodeOn1 "error"
27 | ffi_onError : a -> (e -> PrimIO ()) -> PrimIO ()
28 |
29 | export
30 | unsafeReadableOnError : HasIO io => a -> (e -> IO ()) -> io ()
31 | unsafeReadableOnError = on1 ffi_onError
32 |
33 | %foreign nodeOn0 "pause"
34 | ffi_onPause : a -> PrimIO () -> PrimIO ()
35 |
36 | export
37 | unsafeReadableOnPause : HasIO io => a -> IO () -> io ()
38 | unsafeReadableOnPause = on0 ffi_onPause
39 |
40 | %foreign nodeOn0 "resume"
41 | ffi_onResume : a -> PrimIO () -> PrimIO ()
42 |
43 | export
44 | unsafeReadableOnResume : HasIO io => a -> IO () -> io ()
45 | unsafeReadableOnResume = on0 ffi_onResume
46 |
47 | %foreign "node:lambda: (tya, reader) => reader.pause()"
48 | ffi_pause : a -> PrimIO ()
49 |
50 | export
51 | unsafeReadablePause : HasIO io => a -> io ()
52 | unsafeReadablePause a = primIO $ ffi_pause a
53 |
54 | %foreign "node:lambda: (tya, reader) => reader.resume()"
55 | ffi_resume : a -> PrimIO ()
56 |
57 | export
58 | unsafeReadableResume : HasIO io => a -> io ()
59 | unsafeReadableResume a = primIO $ ffi_resume a
60 |
61 | ||| Readable stream in flowing mode
62 | public export
63 | interface ReadableClass d e r | r where
64 |   (.onClose) : HasIO io => r -> IO () -> io ()
65 |   (.onClose) = unsafeReadableOnClose
66 |   (.onData) : HasIO io => r -> (d -> IO ()) -> io ()
67 |   (.onData) = unsafeReadableOnData
68 |   (.onEnd) : HasIO io => r -> IO () -> io ()
69 |   (.onEnd) = unsafeReadableOnEnd
70 |   (.onError) : HasIO io => r -> (e -> IO ()) -> io ()
71 |   (.onError) = unsafeReadableOnError
72 |   (.onPause) : HasIO io => r -> IO () -> io ()
73 |   (.onPause) = unsafeReadableOnPause
74 |   (.onResume) : HasIO io => r -> IO () -> io ()
75 |   (.onResume) = unsafeReadableOnResume
76 |   (.pause) : HasIO io => r -> io ()
77 |   (.pause) = unsafeReadablePause
78 |   (.resume) : HasIO io => r -> io ()
79 |   (.resume) = unsafeReadableResume
80 |
81 |