#codec #hex #youtube #basex #hash-id

alphaid

使用Rust生成类似YouTube的ID

2个不稳定版本

0.2.0 2020年5月22日
0.1.0 2019年12月26日

#1933 in 编码


zero4rs中使用

MIT/Apache

11KB
159

ALPHAID

使用Rust生成类似YouTube的ID

Build Status crates.io

基本用法

use alphaid::AlphaId;

let alphaid = AlphaId::<u32>::new();
assert_eq!(alphaid.encode(1350997667), Ok(b"90F7qb".to_vec()));
assert_eq!(alphaid.decode(b"90F7qb"), Ok(1350997667));

填充

指定编码结果的最低长度。

use alphaid::AlphaId;

let alphaid = AlphaId::<u32>::new();
assert_eq!(alphaid.encode(0), Ok(b"a".to_vec()));
assert_eq!(alphaid.decode(b"a"), Ok(0));

let alphaid = AlphaId::<u32>::builder().pad(5).build();
assert_eq!(alphaid.encode(0), Ok(b"aaaab".to_vec()));
assert_eq!(alphaid.decode(b"aaaab"), Ok(0));

字符集

设置字符集。默认为abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-_

use alphaid::AlphaId;
let alphaid = AlphaId::<u32>::builder().pad(2)
    .chars("ABCDEFGHIJKLMNOPQRSTUVWXYZ".as_bytes().to_vec())
    .build();
assert_eq!(alphaid.encode(0), Ok(b"AB".to_vec()));
assert_eq!(alphaid.decode(b"AB"), Ok(0));

参考

创建类似YouTube的ID

依赖项

~475KB