dxcode - Rust 实现
带有 dx 前缀的自定义编码算法的 Rust 实现。
安装
在 Cargo.toml 中添加:
[]
= "1.0"
使用方法
基本使用
use ;
编码字节数据
use ;
检查是否为 DX 编码
use ;
API 参考
encode(data: &[u8]) -> String
将字节切片编码为 DX 格式。
参数:
data: 要编码的字节数据
返回值:
- 以
dx为前缀的编码字符串
encode_str(s: &str) -> String
将字符串编码为 DX 格式。
参数:
s: 要编码的字符串
返回值:
- 以
dx为前缀的编码字符串
decode(encoded: &str) -> Result<Vec<u8>>
将 DX 编码的字符串解码为字节向量。
参数:
encoded: DX 编码的字符串(必须以dx开头)
返回值:
Ok(Vec<u8>)- 解码后的字节向量Err(DxError)- 如果输入无效
decode_str(encoded: &str) -> Result<String>
将 DX 编码的字符串解码为字符串。
参数:
encoded: DX 编码的字符串
返回值:
Ok(String)- 解码后的字符串Err(DxError)- 如果输入无效或不是有效的 UTF-8
is_encoded(s: &str) -> bool
检查字符串是否为有效的 DX 编码。
参数:
s: 要检查的字符串
返回值:
- 如果是有效的 DX 编码返回
true,否则返回false
get_info() -> Info
获取 DX 编码的信息。
返回值:
Info结构体,包含版本、作者、字符集等信息
常量
pub const CHARSET: &str = "DXdx0OGgIi1LlAaBbCcEeFfHhJjKkMmNnPpQqRrSsTtUuVvWwYyZz23456789+/";
pub const MAGIC: u8 = 0x44;
pub const PREFIX: &str = "dx";
pub const PADDING: char = '=';
错误处理
use ;
错误类型
DxError::InvalidPrefix- 字符串不以dx开头DxError::InvalidLength- 编码字符串长度不正确DxError::InvalidCharacter(char)- 包含 DX 字符集之外的字符DxError::Utf8Error(String)- 解码后的数据不是有效的 UTF-8
特性 (Features)
std(默认): 启用标准库支持
兼容性
- Rust >= 1.70.0 (需要
LazyLock)
许可证
MIT License © Dogxi