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