@@ -22,6 +22,7 @@ module Node.Buffer
22
22
, fill
23
23
) where
24
24
25
+ import Prelude
25
26
import Control.Monad.Eff
26
27
import Data.Maybe
27
28
import Node.Encoding
@@ -45,7 +46,7 @@ foreign import data Buffer :: *
45
46
instance showBuffer :: Show Buffer where
46
47
show = showImpl
47
48
48
- foreign import showImpl " var showImpl = require('util').inspect; " :: Buffer -> String
49
+ foreign import showImpl :: Buffer -> String
49
50
50
51
-- |
51
52
-- Effect for buffer modification.
@@ -90,18 +91,12 @@ instance showBufferValueType :: Show BufferValueType where
90
91
-- |
91
92
-- Creates a new buffer of the specified size.
92
93
--
93
- foreign import create
94
- " function create (size) { \
95
- \ return new Buffer(size); \
96
- \}" :: Number -> Buffer
94
+ foreign import create :: Int -> Buffer
97
95
98
96
-- |
99
97
-- Creates a new buffer from an array of octets, sized to match the array.
100
98
--
101
- foreign import fromArray
102
- " function fromArray (octets) { \
103
- \ return new Buffer(octets); \
104
- \}" :: [Octet ] -> Buffer
99
+ foreign import fromArray :: Array Octet -> Buffer
105
100
106
101
-- |
107
102
-- Creates a new buffer from a string with the specified encoding, sized to
@@ -110,76 +105,40 @@ foreign import fromArray
110
105
fromString :: String -> Encoding -> Buffer
111
106
fromString str = fromStringImpl str <<< show
112
107
113
- foreign import fromStringImpl
114
- " function fromStringImpl (str) { \
115
- \ return function (encoding) { \
116
- \ return new Buffer(str, encoding); \
117
- \ }; \
118
- \}" :: String -> String -> Buffer
108
+ foreign import fromStringImpl :: String -> String -> Buffer
119
109
120
110
-- |
121
111
-- Reads a numeric value from a buffer at the specified offset.
122
112
--
123
113
read :: BufferValueType -> Offset -> Buffer -> Number
124
114
read = readImpl <<< show
125
115
126
- foreign import readImpl
127
- " function readImpl (ty) { \
128
- \ return function (offset) { \
129
- \ return function (buf) { \
130
- \ return buf['read' + ty](offset); \
131
- \ }; \
132
- \ }; \
133
- \}" :: String -> Offset -> Buffer -> Number
134
-
116
+ foreign import readImpl :: String -> Offset -> Buffer -> Number
135
117
136
118
-- |
137
119
-- Reads a section of a buffer as a string with the specified encoding.
138
120
--
139
121
readString :: forall e . Encoding -> Offset -> Offset -> Buffer -> String
140
122
readString = readStringImpl <<< show
141
123
142
- foreign import readStringImpl
143
- " function readStringImpl (enc) { \
144
- \ return function (start) { \
145
- \ return function (end) { \
146
- \ return function (buff) { \
147
- \ return buff.toString(enc, start, end); \
148
- \ } \
149
- \ } \
150
- \ } \
151
- \}" :: String -> Offset -> Offset -> Buffer -> String
124
+ foreign import readStringImpl :: String -> Offset -> Offset -> Buffer -> String
152
125
153
126
-- |
154
127
-- Reads the buffer as a string with the specified encoding.
155
128
--
156
129
toString :: forall e . Encoding -> Buffer -> String
157
130
toString = toStringImpl <<< show
158
131
159
- foreign import toStringImpl
160
- " function toStringImpl (enc) { \
161
- \ return function (buff) { \
162
- \ return buff.toString(enc); \
163
- \ } \
164
- \}" :: String -> Buffer -> String
132
+ foreign import toStringImpl :: String -> Buffer -> String
165
133
166
134
-- |
167
135
-- Writes a numeric value to a buffer at the specified offset.
168
136
--
169
137
write :: forall e . BufferValueType -> Number -> Offset -> Buffer -> Eff (buffer :: BufferWrite | e ) Unit
170
138
write = writeImpl <<< show
171
139
172
- foreign import writeImpl
173
- " function writeImpl (ty) { \
174
- \ return function (value) { \
175
- \ return function (offset) { \
176
- \ return function (buf) { \
177
- \ buf['write' + ty](value, offset); \
178
- \ return {}; \
179
- \ }; \
180
- \ }; \
181
- \ }; \
182
- \}" :: forall e . String -> Number -> Offset -> Buffer -> Eff (buffer :: BufferWrite | e ) Unit
140
+ foreign import writeImpl ::
141
+ forall e . String -> Number -> Offset -> Buffer -> Eff (buffer :: BufferWrite | e ) Unit
183
142
184
143
-- |
185
144
-- Writes octets from a string to a buffer at the specified offset. Multi-byte
@@ -189,107 +148,53 @@ foreign import writeImpl
189
148
writeString :: forall e . Encoding -> Offset -> Number -> String -> Buffer -> Eff (buffer :: BufferWrite | e ) Number
190
149
writeString = writeStringImpl <<< show
191
150
192
- foreign import writeStringImpl
193
- " function writeStringImpl (enc) { \
194
- \ return function (offset) { \
195
- \ return function (length) { \
196
- \ return function (value) { \
197
- \ return function (buff) { \
198
- \ return buff.write(value, offset, length, encoding); \
199
- \ }; \
200
- \ }; \
201
- \ }; \
202
- \ }; \
203
- \}" :: forall e . String -> Offset -> Number -> String -> Buffer -> Eff (buffer :: BufferWrite | e ) Number
151
+ foreign import writeStringImpl ::
152
+ forall e . String -> Offset -> Number -> String -> Buffer -> Eff (buffer :: BufferWrite | e ) Number
204
153
205
154
-- |
206
155
-- Creates an array of octets from a buffer's contents.
207
156
--
208
- foreign import toArray
209
- " function toArray (buff) { \
210
- \ return buff.toJSON(); \
211
- \}" :: Buffer -> [Octet ]
157
+ foreign import toArray :: Buffer -> Array Octet
212
158
213
159
-- |
214
160
-- Reads an octet from a buffer at the specified offset.
215
161
--
216
- foreign import getAtOffset
217
- " function getAtOffset (buff) { \
218
- \ return function (offset) { \
219
- \ var octet = buff[offset]; \
220
- \ return octet == null ? _ps.Data_Maybe.Nothing \
221
- \ : _ps.Data_Maybe.Just(buff[i]); \
222
- \ } \
223
- \}" :: Offset -> Buffer -> Maybe Octet
162
+ getAtOffset :: Offset -> Buffer -> Maybe Octet
163
+ getAtOffset = getAtOffsetImpl Just Nothing
164
+
165
+ foreign import getAtOffsetImpl ::
166
+ (Octet -> Maybe Octet ) -> Maybe Octet -> Offset -> Buffer -> Maybe Octet
224
167
225
168
-- |
226
169
-- Writes an octet in the buffer at the specified offset.
227
170
--
228
- foreign import setAtOffset
229
- " function setAtOffset (value) { \
230
- \ return function (offset) { \
231
- \ return function (buff) { \
232
- \ buff[offset] = value; \
233
- \ return {}; \
234
- \ } \
235
- \ } \
236
- \}" :: forall e . Octet -> Offset -> Buffer -> Eff (buffer :: BufferWrite | e ) Unit
171
+ foreign import setAtOffset ::
172
+ forall e . Octet -> Offset -> Buffer -> Eff (buffer :: BufferWrite | e ) Unit
237
173
238
174
-- |
239
175
-- Returns the size of a buffer.
240
176
--
241
- foreign import size
242
- " function size (buff) { \
243
- \ return buff.length; \
244
- \}" :: forall e . Buffer -> Number
177
+ foreign import size :: Buffer -> Number
245
178
246
179
-- |
247
180
-- Concatenates a list of buffers.
248
181
--
249
- foreign import concat
250
- " function concat (buffs) { \
251
- \ return Buffer.concat(buffs); \
252
- \}" :: [Buffer ] -> Buffer
182
+ foreign import concat :: Array Buffer -> Buffer
253
183
254
184
-- |
255
185
-- Concatenates a list of buffers, combining them into a new buffer of the
256
186
-- specified length.
257
187
--
258
- foreign import concat'
259
- " function concat$prime (buffs) { \
260
- \ return function (totalLength) { \
261
- \ return Buffer.concat(buffs, totalLength); \
262
- \ } \
263
- \}" :: [Buffer ] -> Number -> Buffer
188
+ foreign import concat' :: Array Buffer -> Number -> Buffer
264
189
265
190
-- |
266
191
-- Copies a section of a source buffer into a target buffer at the specified
267
192
-- offset.
268
193
--
269
- foreign import copy
270
- " function copy (srcStart) { \
271
- \ return function (srcEnd) { \
272
- \ return function (src) { \
273
- \ return function (targStart) { \
274
- \ return function (targ) { \
275
- \ return src.copy(targ, targStart, srcStart, strcEnd); \
276
- \ } \
277
- \ } \
278
- \ } \
279
- \ } \
280
- \}" :: Offset -> Offset -> Buffer -> Offset -> Buffer -> Buffer
194
+ foreign import copy :: Offset -> Offset -> Buffer -> Offset -> Buffer -> Buffer
281
195
282
196
-- |
283
197
-- Fills a range in a buffer with the specified octet.
284
198
--
285
- foreign import fill
286
- " function fill (buff) { \
287
- \ return function (octet) { \
288
- \ return function (start) { \
289
- \ return function (end) { \
290
- \ buff.fill(octet, start, end); \
291
- \ return {}; \
292
- \ } \
293
- \ } \
294
- \ } \
295
- \}" :: forall e . Octet -> Offset -> Offset -> Buffer -> Eff (buffer :: BufferWrite | e ) Unit
199
+ foreign import fill ::
200
+ forall e . Octet -> Offset -> Offset -> Buffer -> Eff (buffer :: BufferWrite | e ) Unit
0 commit comments