0 | module Data.Buffer.Ext
 1 |
 2 | import public Data.Buffer
 3 |
 4 | %foreign "scheme:blodwen-new-buffer"
 5 |          "RefC:newBuffer"
 6 |          "node:lambda:s=>Buffer.alloc(s)"
 7 | prim__newBuffer : Int -> PrimIO Buffer
 8 |
 9 | export
10 | newBuffer : HasIO io => Nat -> io Buffer
11 | newBuffer size = primIO (Ext.prim__newBuffer $ cast size)
12 |
13 | %foreign "scheme:string->utf8"
14 |          "node:lambda: s=>Buffer.from(s, 'utf8')"
15 | ffi_BufferFromStringUTF8 : String -> Buffer
16 |
17 | export
18 | implementation FromString Buffer where
19 |   fromString = ffi_BufferFromStringUTF8
20 |
21 | %foreign "scheme:utf8->string"
22 |          "node:lambda: b=>b.toString('utf8')"
23 | ffi_BufferToStringUTF8 : Buffer -> String
24 |
25 | export
26 | implementation Show Buffer where
27 |   show = ffi_BufferToStringUTF8
28 |
29 |