windjammer_runtime/platform/native/
encoding.rs1use base64::{engine::general_purpose, Engine as _};
6
7pub fn base64_encode(data: Vec<u8>) -> String {
11 general_purpose::STANDARD.encode(&data)
12}
13
14pub fn base64_encode_string(data: String) -> String {
15 general_purpose::STANDARD.encode(data.as_bytes())
16}
17
18pub fn base64_decode(data: String) -> Result<Vec<u8>, String> {
19 general_purpose::STANDARD
20 .decode(&data)
21 .map_err(|e| e.to_string())
22}
23
24pub fn base64_decode_string(data: String) -> Result<String, String> {
25 let bytes = general_purpose::STANDARD
26 .decode(&data)
27 .map_err(|e| e.to_string())?;
28 String::from_utf8(bytes).map_err(|e| e.to_string())
29}
30
31pub fn hex_encode(data: Vec<u8>) -> String {
32 hex::encode(&data)
33}
34
35pub fn hex_encode_string(data: String) -> String {
36 hex::encode(data.as_bytes())
37}
38
39pub fn hex_decode(data: String) -> Result<Vec<u8>, String> {
40 hex::decode(&data).map_err(|e| e.to_string())
41}
42
43pub fn hex_decode_string(data: String) -> Result<String, String> {
44 let bytes = hex::decode(&data).map_err(|e| e.to_string())?;
45 String::from_utf8(bytes).map_err(|e| e.to_string())
46}
47
48pub fn url_encode(data: String) -> String {
49 urlencoding::encode(&data).to_string()
50}
51
52pub fn url_decode(data: String) -> Result<String, String> {
53 urlencoding::decode(&data)
54 .map(|s| s.to_string())
55 .map_err(|e| e.to_string())
56}
57
58pub fn url_encode_component(data: String) -> String {
59 url_encode(data)
60}
61
62pub fn url_decode_component(data: String) -> Result<String, String> {
63 url_decode(data)
64}