1use js_sys::{ArrayBuffer, Iterator, JsString, Object, Uint8Array};
2use wasm_bindgen::prelude::*;
3
4#[wasm_bindgen]
5extern "C" {
6 #[wasm_bindgen(extends = Uint8Array)]
7 #[derive(Clone, Debug)]
8 pub type Buffer;
9
10 #[wasm_bindgen(static_method_of = Buffer)]
15 pub fn alloc(size: f64, fill: Option<&Buffer>, encoding: Option<&JsString>) -> Buffer;
16
17 #[wasm_bindgen(static_method_of = Buffer, js_name = "allocUnsafe")]
18 pub fn alloc_unsafe(size: f64) -> Buffer;
19
20 #[wasm_bindgen(static_method_of = Buffer, js_name = "byteLength")]
21 pub fn byte_length(string: &JsString, encoding: Option<&JsString>) -> f64;
22
23 #[wasm_bindgen(static_method_of = Buffer, js_name = "compare")]
25 pub fn compare_(buf1: &Buffer, buf2: &Buffer) -> i32;
26
27 #[wasm_bindgen(static_method_of = Buffer)]
28 pub fn concat(list: Box<[JsValue]>, total_length: Option<f64>) -> Buffer;
29
30 #[wasm_bindgen(static_method_of = Buffer, js_name = "isBuffer")]
31 pub fn is_buffer(value: &JsValue) -> bool;
32
33 #[wasm_bindgen(static_method_of = Buffer, js_name = "isEncoding")]
34 pub fn is_encoding(encoding: &JsString) -> bool;
35
36 #[wasm_bindgen(static_method_of = Buffer, js_name = "from")]
37 pub fn from_array(array: Box<[JsValue]>) -> Buffer;
38
39 #[wasm_bindgen(static_method_of = Buffer, js_name = "from")]
40 pub fn from_array_buffer(
41 buffer: &ArrayBuffer,
42 byte_offset: Option<f64>,
43 length: Option<f64>,
44 ) -> Buffer;
45
46 #[wasm_bindgen(static_method_of = Buffer, js_name = "from")]
47 pub fn from_array_uint8(array: &Uint8Array) -> Buffer;
48
49 #[wasm_bindgen(static_method_of = Buffer, js_name = "from")]
50 pub fn from_string(string: &JsString, encoding: Option<&JsString>) -> Buffer;
51
52 #[wasm_bindgen(static_method_of = Buffer, getter, js_name = "poolSize")]
53 pub fn pool_size() -> f64;
54
55 #[wasm_bindgen(method)]
60 pub fn compare(
61 this: &Buffer,
62 target: &Buffer,
63 target_start: Option<f64>,
64 target_end: Option<f64>,
65 source_start: Option<f64>,
66 source_end: Option<f64>,
67 ) -> i32;
68
69 #[wasm_bindgen(method)]
70 pub fn copy(
71 this: &Buffer,
72 target: &Buffer,
73 target_start: Option<f64>,
74 source_start: Option<f64>,
75 source_end: Option<f64>,
76 ) -> f64;
77
78 #[wasm_bindgen(method)]
79 pub fn entries(this: &Buffer) -> Iterator;
80
81 #[wasm_bindgen(method)]
82 pub fn equals(this: &Buffer, that: &Buffer) -> bool;
83
84 #[wasm_bindgen(method)]
85 pub fn fill(
86 this: &Buffer,
87 value: &JsValue,
88 offset: Option<f64>,
89 end: Option<f64>,
90 encoding: Option<JsString>,
91 ) -> Buffer;
92
93 #[wasm_bindgen(method)]
94 pub fn includes(
95 this: &Buffer,
96 value: &JsValue,
97 offset: Option<f64>,
98 encoding: Option<&JsString>,
99 ) -> bool;
100
101 #[wasm_bindgen(method, js_name = "indexOf")]
102 pub fn index_of(
103 this: &Buffer,
104 value: &JsValue,
105 offset: Option<f64>,
106 encoding: Option<&JsString>,
107 ) -> f64;
108
109 #[wasm_bindgen(method)]
110 pub fn keys(this: &Buffer) -> Iterator;
111
112 #[wasm_bindgen(method, js_name = "lastIndexOf")]
113 pub fn last_index_of(
114 this: &Buffer,
115 value: &JsValue,
116 offset: Option<f64>,
117 encoding: Option<&JsString>,
118 ) -> f64;
119
120 #[wasm_bindgen(method, js_name = "readBigInt64BE")]
121 pub fn read_big_int64_be(this: &Buffer, offset: Option<f64>) -> i64;
122
123 #[wasm_bindgen(method, js_name = "readBigInt64LE")]
124 pub fn read_big_int64_le(this: &Buffer, offset: Option<f64>) -> i64;
125
126 #[wasm_bindgen(method, js_name = "readBigUInt64BE")]
127 pub fn read_big_uint64_be(this: &Buffer, offset: Option<f64>) -> u64;
128
129 #[wasm_bindgen(method, js_name = "readBigUInt64LE")]
130 pub fn read_big_uint64_le(this: &Buffer, offset: Option<f64>) -> u64;
131
132 #[wasm_bindgen(method, js_name = "readDoubleBE")]
133 pub fn read_double_be(this: &Buffer, offset: Option<f64>) -> f64;
134
135 #[wasm_bindgen(method, js_name = "readDoubleLE")]
136 pub fn read_double_le(this: &Buffer, offset: Option<f64>) -> f64;
137
138 #[wasm_bindgen(method, js_name = "readFloatBE")]
139 pub fn read_float_be(this: &Buffer, offset: Option<f64>) -> f32;
140
141 #[wasm_bindgen(method, js_name = "readFloatLE")]
142 pub fn read_float_le(this: &Buffer, offset: Option<f64>) -> f32;
143
144 #[wasm_bindgen(method, js_name = "readIntBE")]
145 pub fn read_int_be(this: &Buffer, offset: f64, length: u8) -> f64;
146
147 #[wasm_bindgen(method, js_name = "readIntLE")]
148 pub fn read_int_le(this: &Buffer, offset: f64, length: u8) -> f64;
149
150 #[wasm_bindgen(method, js_name = "readInt8")]
151 pub fn read_int8(this: &Buffer, offset: Option<f64>) -> i8;
152
153 #[wasm_bindgen(method, js_name = "readInt16BE")]
154 pub fn read_int16_be(this: &Buffer, offset: Option<f64>) -> i16;
155
156 #[wasm_bindgen(method, js_name = "readInt16LE")]
157 pub fn read_int16_le(this: &Buffer, offset: Option<f64>) -> i16;
158
159 #[wasm_bindgen(method, js_name = "readInt32BE")]
160 pub fn read_int32_be(this: &Buffer, offset: Option<f64>) -> i32;
161
162 #[wasm_bindgen(method, js_name = "readInt32LE")]
163 pub fn read_int32_le(this: &Buffer, offset: Option<f64>) -> i32;
164
165 #[wasm_bindgen(method, js_name = "readUIntBE")]
166 pub fn read_uint_be(this: &Buffer, offset: f64, length: u8) -> f64;
167
168 #[wasm_bindgen(method, js_name = "readUIntLE")]
169 pub fn read_uint_le(this: &Buffer, offset: f64, length: u8) -> f64;
170
171 #[wasm_bindgen(method, js_name = "readUInt8")]
172 pub fn read_uint8(this: &Buffer, offset: Option<f64>) -> u8;
173
174 #[wasm_bindgen(method, js_name = "readUInt16BE")]
175 pub fn read_uint16_be(this: &Buffer, offset: Option<f64>) -> u16;
176
177 #[wasm_bindgen(method, js_name = "readUInt16LE")]
178 pub fn read_uint16_le(this: &Buffer, offset: Option<f64>) -> u16;
179
180 #[wasm_bindgen(method, js_name = "readUInt32BE")]
181 pub fn read_uint32_be(this: &Buffer, offset: Option<f64>) -> u32;
182
183 #[wasm_bindgen(method, js_name = "readUInt32LE")]
184 pub fn read_uint32_le(this: &Buffer, offset: Option<f64>) -> u32;
185
186 #[wasm_bindgen(method)]
187 pub fn slice(this: &Buffer, start: Option<f64>, end: Option<f64>) -> Buffer;
188
189 #[wasm_bindgen(method)]
190 pub fn subarray(this: &Buffer, start: Option<f64>, end: Option<f64>) -> Buffer;
191
192 #[wasm_bindgen(method)]
193 pub fn swap16(this: &Buffer) -> Buffer;
194
195 #[wasm_bindgen(method)]
196 pub fn swap32(this: &Buffer) -> Buffer;
197
198 #[wasm_bindgen(method)]
199 pub fn swap64(this: &Buffer) -> Buffer;
200
201 #[wasm_bindgen(method, js_name = "toJSON")]
202 pub fn to_json(this: &Buffer) -> Object;
203
204 #[wasm_bindgen(method, js_name = "toString")]
205 pub fn to_string(
206 this: &Buffer,
207 encoding: Option<JsString>,
208 start: Option<f64>,
209 end: Option<f64>,
210 ) -> JsString;
211
212 #[wasm_bindgen(method)]
213 pub fn values(this: &Buffer) -> Iterator;
214
215 #[wasm_bindgen(method)]
216 pub fn write(
217 this: &Buffer,
218 string: &JsString,
219 offset: Option<f64>,
220 length: Option<f64>,
221 encoding: Option<&JsString>,
222 ) -> f64;
223
224 #[wasm_bindgen(method, js_name = "writeBigInt64BE")]
225 pub fn write_big_int64_be(this: &Buffer, value: i64, offset: Option<f64>) -> f64;
226
227 #[wasm_bindgen(method, js_name = "writeBigInt64LE")]
228 pub fn write_big_int64_le(this: &Buffer, value: i64, offset: Option<f64>) -> f64;
229
230 #[wasm_bindgen(method, js_name = "writeBigUInt64BE")]
231 pub fn write_big_uint64_be(this: &Buffer, value: u64, offset: Option<f64>) -> f64;
232
233 #[wasm_bindgen(method, js_name = "writeBigUInt64LE")]
234 pub fn write_big_uint64_le(this: &Buffer, value: u64, offset: Option<f64>) -> f64;
235
236 #[wasm_bindgen(method, js_name = "writeDoubleBE")]
237 pub fn write_double_be(this: &Buffer, value: f64, offset: Option<f64>) -> f64;
238
239 #[wasm_bindgen(method, js_name = "writeDoubleLE")]
240 pub fn write_double_le(this: &Buffer, value: f64, offset: Option<f64>) -> f64;
241
242 #[wasm_bindgen(method, js_name = "writeFloatBE")]
243 pub fn write_float_be(this: &Buffer, value: f32, offset: Option<f64>) -> f64;
244
245 #[wasm_bindgen(method, js_name = "writeFloatLE")]
246 pub fn write_float_le(this: &Buffer, value: f32, offset: Option<f64>) -> f64;
247
248 #[wasm_bindgen(method, js_name = "writeInt8")]
249 pub fn write_int8(this: &Buffer, value: i8, offset: Option<f64>) -> f64;
250
251 #[wasm_bindgen(method, js_name = "writeInt16BE")]
252 pub fn write_int16_be(this: &Buffer, value: i16, offset: Option<f64>) -> f64;
253
254 #[wasm_bindgen(method, js_name = "writeInt16LE")]
255 pub fn write_int16_le(this: &Buffer, value: i16, offset: Option<f64>) -> f64;
256
257 #[wasm_bindgen(method, js_name = "writeInt32BE")]
258 pub fn write_int32_be(this: &Buffer, value: i32, offset: Option<f64>) -> f64;
259
260 #[wasm_bindgen(method, js_name = "writeInt32LE")]
261 pub fn write_int32_le(this: &Buffer, value: i32, offset: Option<f64>) -> f64;
262
263 #[wasm_bindgen(method, js_name = "writeUInt8")]
264 pub fn write_uint8(this: &Buffer, value: u8, offset: Option<f64>) -> f64;
265
266 #[wasm_bindgen(method, js_name = "writeUInt16BE")]
267 pub fn write_uint16_be(this: &Buffer, value: u16, offset: Option<f64>) -> f64;
268
269 #[wasm_bindgen(method, js_name = "writeUInt16LE")]
270 pub fn write_uint16_le(this: &Buffer, value: u16, offset: Option<f64>) -> f64;
271
272 #[wasm_bindgen(method, js_name = "writeUInt32BE")]
273 pub fn write_uint32_be(this: &Buffer, value: u32, offset: Option<f64>) -> f64;
274
275 #[wasm_bindgen(method, js_name = "writeUInt32LE")]
276 pub fn write_uint32_le(this: &Buffer, value: u32, offset: Option<f64>) -> f64;
277
278 #[wasm_bindgen(method, getter)]
283 pub fn length(this: &Buffer) -> f64;
284}