1use crate::Base;
2
3#[derive(Debug, Default)]
4pub struct Base58Btc;
5
6impl Base<58> for Base58Btc {
7 const ALPHABET: [u8; 58] = *b"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
8}
9
10macro_rules! base {
11 ($name:ident, $len:literal $alph:literal) => {
12 #[derive(Debug, Default)]
13 pub struct $name;
14
15 impl Base<$len> for $name {
16 const ALPHABET: [u8; $len] = *$alph;
17 }
18 };
19}
20
21base!(Base2, 2 b"01");
23base!(Base8, 8 b"01234567");
24base!(Base11, 11 b"0123456789a");
25base!(Base36, 36 b"0123456789abcdefghijklmnopqrstuvwxyz");
26base!(Base62, 62 b"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
27base!(Base67, 67 b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.!~");
28
29base!(Base10, 10 b"0123456789");
31base!(Base58Flickr, 58 b"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");