list_alphabets/
list_alphabets.rs1use base_d::AlphabetsConfig;
2
3fn main() {
4 let config = AlphabetsConfig::load_default().unwrap();
5
6 println!("Available alphabets:\n");
7
8 for (name, alphabet_config) in config.alphabets.iter() {
9 let (char_count, preview) = match alphabet_config.mode {
10 base_d::EncodingMode::ByteRange => {
11 if let Some(start) = alphabet_config.start_codepoint {
12 let preview_chars: String = (0..10)
13 .filter_map(|i| std::char::from_u32(start + i))
14 .collect();
15 (256, preview_chars)
16 } else {
17 (256, String::from("(invalid)"))
18 }
19 }
20 _ => {
21 let count = alphabet_config.chars.chars().count();
22 let preview: String = alphabet_config.chars.chars().take(10).collect();
23 (count, preview)
24 }
25 };
26 let mode_str = match alphabet_config.mode {
27 base_d::EncodingMode::BaseConversion => "math",
28 base_d::EncodingMode::Chunked => "chunk",
29 base_d::EncodingMode::ByteRange => "range",
30 };
31 println!(" {} (base-{}, {}): {}...", name, char_count, mode_str, preview);
32 }
33}