Skip to main content

workflow_node/node_sys/class/
buffer.rs

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    //****************//
11    // Static Methods //
12    //****************//
13
14    #[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    // FIXME: compiler complains about
24    #[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    //******************//
56    // Instance Methods //
57    //******************//
58
59    #[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    //*********************//
279    // Instance Properties //
280    //*********************//
281
282    #[wasm_bindgen(method, getter)]
283    pub fn length(this: &Buffer) -> f64;
284}