node_sys/class/
buffer.rs

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    //****************//
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(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    //******************//
52    // Instance Methods //
53    //******************//
54
55    #[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    //*********************//
255    // Instance Properties //
256    //*********************//
257
258    #[wasm_bindgen(method, getter)]
259    pub fn length(this: &Buffer) -> f64;
260}