qiniu_utils/
base64.rs

1//! Base64 计算库
2//!
3//! 提供简单的 URLSafe Base64 计算库
4
5pub use base64::DecodeError;
6use std::result::Result;
7
8/// 以 URL 安全的方式,将指定的二进制数据编码为 Base64 字符串
9pub fn urlsafe(data: &[u8]) -> String {
10    base64::encode_config(data, base64::URL_SAFE)
11}
12
13/// 以 URL 安全的方式,将指定的二进制数据编码为 Base64 字符串
14pub fn urlsafe_buf(data: &[u8], encoded: &mut String) {
15    base64::encode_config_buf(data, base64::URL_SAFE, encoded)
16}
17
18/// 以 URL 安全的方式,将指定的二进制数据编码为 Base64 字符串
19pub fn urlsafe_slice(data: &[u8], encoded: &mut [u8]) -> usize {
20    base64::encode_config_slice(data, base64::URL_SAFE, encoded)
21}
22
23/// 以 URL 安全的方式,将指定的 Base64 字符串解码为二进制数据
24pub fn decode(data: &[u8]) -> Result<Vec<u8>, DecodeError> {
25    base64::decode_config(data, base64::URL_SAFE)
26}
27
28/// 以 URL 安全的方式,将指定的 Base64 字符串解码为二进制数据
29pub fn decode_buf(data: &[u8], decoded: &mut Vec<u8>) -> Result<(), DecodeError> {
30    base64::decode_config_buf(data, base64::URL_SAFE, decoded)
31}
32
33/// 以 URL 安全的方式,将指定的 Base64 字符串解码为二进制数据
34pub fn decode_slice(data: &[u8], decoded: &mut [u8]) -> Result<usize, DecodeError> {
35    base64::decode_config_slice(data, base64::URL_SAFE, decoded)
36}