lunesrs/utils/
serialize.rs

1use wasm_bindgen::prelude::wasm_bindgen;
2
3/**
4# Serialize Unsigned Integer
5
6- The function transform a u64 in Array of bytes
7
8## In JavaScript 👍
9
10```javascript
11```
12
13## In Rust 🤝
14
15```rust
16use lunesrs::utils::serialize::serialize_integer;
17
18let uinteger = 1528077600000;
19
20assert_eq!(serialize_integer(uinteger), [0, 0, 1, 99, 200, 133, 197, 0]);
21assert_eq!(serialize_integer(1), [0, 0, 0, 0, 0, 0, 0, 1]);
22```
23*/
24#[wasm_bindgen(js_name = "serializeUInteger")]
25pub fn serialize_integer(number: u64) -> Vec<u8> {
26    number.to_be_bytes().to_vec()
27}
28
29/**
30# Serialize Strings
31
32- The function transform a string in Array of bytes
33- 🖐 If the string is empty *`""`* will returned *`[0]`*
34
35## In JavaScript 👍
36
37```javascript
38```
39
40## In Rust 🤝
41
42```rust
43use lunesrs::utils::serialize::serialize_string;
44
45let string = "E3ZpxkM2kvS78aFYG2xFfngchMgik4ogLLRa6CBJvVgz".to_string();
46
47assert_eq!(serialize_string("".to_string()), [0]);
48assert_eq!(
49    serialize_string(string),
50    [
51        69, 51, 90, 112, 120, 107, 77, 50, 107, 118, 83, 55, 56, 97, 70, 89, 71, 50, 120, 70,
52        102, 110, 103, 99, 104, 77, 103, 105, 107, 52, 111, 103, 76, 76, 82, 97, 54, 67, 66,
53        74, 118, 86, 103, 122
54    ]
55);
56```
57*/
58#[wasm_bindgen(js_name = "serializeString")]
59pub fn serialize_string(token: String) -> Vec<u8> {
60    if token == "" {
61        0u8.to_be_bytes().to_vec()
62    } else {
63        token.as_bytes().to_vec()
64    }
65}