3个版本
0.1.2 | 2022年1月16日 |
---|---|
0.1.1 | 2022年1月16日 |
0.1.0 | 2022年1月16日 |
#205 in Windows API
10KB
66 行
Win-Base64 API
描述
对Windows API Base64编码和解码的一个简单包装
- 字符串转Base64 (
encode
) - Base64转字符串 (
decode
)
示例代码
use win_base64::decode;
use win_base64::encode;
let text = "What's up?😊🥘🍲🚩🏁🚀👌😁👍😍❤️💕🎶";
let base64_string = encode(&text)?;
let decoded_text = decode(&base64_string)?;
// If it worked, text and decoded_text would be the same
println!("Original: {}", text);
println!("Decoded : {}", decoded_text);
输出
原始: What's up?😊👌😁👍😍❤️💕🎶
解码: What's up?😊👌😁👍😍❤️💕🎶
是的,这个支持表情符号。
与base64库类似的代码
let a = "hello world";
let b = "aGVsbG8gd29ybGQ=";
assert_eq!(encode(a)?, b);
assert_eq!(a, &decode(b)?[..]);
多次解码
-
解码为
&mut [u8]
(decode_as_mut8
)
可能是最快的
但大小需要手动指定。
因此可能也是风险最高的。let text = "What's up?"; let base64_string = encode(&text)?; let mut decoded_arr = vec![0u8; 10]; use win_base64::decode_as_mut8; decode_as_mut8(&base64_string, &mut decoded_arr)?; // If it worked, text and decoded_text would be the same println!("Original: {}", text); println!("Decoded : {:?}", decoded_arr);
-
解码为
Vec<u8>
(decode_as_vecu8
)
分配正确大小的vec,并返回解码后的值。比mut u8更安全,因为它知道解码后的大小let text = "What's up?"; let base64_string = encode(&text)?; use win_base64::decode_as_vecu8; let decoded_vec = decode_as_vecu8(&base64_string)?; // If it worked, text and decoded_text would be the same println!("Original: {}", text); println!("Decoded : {:?}", decoded_vec);
-
解码为字符串 (
decode
)
在顶部示例中展示use win_base64::decode; use win_base64::encode; let text = "What's up?😊🥘🍲🚩🏁🚀👌😁👍😍❤️💕🎶"; let base64_string = encode(&text)?; let decoded_text = decode(&base64_string)?; // If it worked, text and decoded_text would be the same println!("Original: {}", text); println!("Decoded : {}", decoded_text);
依赖项
~129MB
~2M SLoC