在自己开发了一个 Base62 转换库后,基于自己的理解阅读了另一个较成熟的库 base-62 并做了一些对比分析。
本人是 Rust 初学者,观点和分析可能都比较浅显,欢迎讨论交流。
Ext Link: https://jtr109.github.io/posts/rust-base62-lib/
1
共 5 条评论, 1 页
在自己开发了一个 Base62 转换库后,基于自己的理解阅读了另一个较成熟的库 base-62 并做了一些对比分析。
本人是 Rust 初学者,观点和分析可能都比较浅显,欢迎讨论交流。
评论区
写评论嗯,你说的对。我本来想能不能用一个 trait 表示的。没有留意返回类型的差异。这样看来确实 bytes array 还是最好的选择。
--
👇
Neutron3529: 明白了
但感觉就算
std::usize
是to_be_bytes
,你也不可能把std::usize
跟num_biginit::BigUint
的方法混用吧毕竟签名一个是
[u8;8]
(Note: This function returns an array of length 2, 4 or 8 bytes depending on the target pointer size.),一个是Vec<u8>
,返回类型都不一样,又怎么用同一个函数处理呢?--
👇
jtr109: 可能是我没有写明白,我对比的是
std::usize
(std::u32
等也一样),他们提供的 bytes array 转换方法名叫to_be_bytes
而num_biginit::BigUint
里是to_bytes_be
。他们的方法名称不一致。--
👇
Neutron3529: 这里不得不吐糟一下 num_bigint。虽然也实现了 byte array 转换,但是使用了的名称 to_bytes_be,和标准库中不一致。导致不能使用 trait 来解决问题。
这句话没看懂
明明num_bigint无论是Uint还是Int都有to_bytes_le啊
明白了
但感觉就算
std::usize
是to_be_bytes
,你也不可能把std::usize
跟num_biginit::BigUint
的方法混用吧毕竟签名一个是
[u8;8]
(Note: This function returns an array of length 2, 4 or 8 bytes depending on the target pointer size.),一个是Vec<u8>
,返回类型都不一样,又怎么用同一个函数处理呢?--
👇
jtr109: 可能是我没有写明白,我对比的是
std::usize
(std::u32
等也一样),他们提供的 bytes array 转换方法名叫to_be_bytes
而num_biginit::BigUint
里是to_bytes_be
。他们的方法名称不一致。--
👇
Neutron3529: 这里不得不吐糟一下 num_bigint。虽然也实现了 byte array 转换,但是使用了的名称 to_bytes_be,和标准库中不一致。导致不能使用 trait 来解决问题。
这句话没看懂
明明num_bigint无论是Uint还是Int都有to_bytes_le啊
可能是我没有写明白,我对比的是
std::usize
(std::u32
等也一样),他们提供的 bytes array 转换方法名叫to_be_bytes
而num_biginit::BigUint
里是to_bytes_be
。他们的方法名称不一致。--
👇
Neutron3529: 这里不得不吐糟一下 num_bigint。虽然也实现了 byte array 转换,但是使用了的名称 to_bytes_be,和标准库中不一致。导致不能使用 trait 来解决问题。
这句话没看懂
明明num_bigint无论是Uint还是Int都有to_bytes_le啊
这里不得不吐糟一下 num_bigint。虽然也实现了 byte array 转换,但是使用了的名称 to_bytes_be,和标准库中不一致。导致不能使用 trait 来解决问题。
这句话没看懂
明明num_bigint无论是Uint还是Int都有to_bytes_le啊
6