pub struct Alphabet { /* private fields */ }Implementations§
Source§impl Alphabet
impl Alphabet
pub fn new(chars: Vec<char>) -> Result<Self, String>
Sourcepub fn new_with_mode(
chars: Vec<char>,
mode: EncodingMode,
padding: Option<char>,
) -> Result<Self, String>
pub fn new_with_mode( chars: Vec<char>, mode: EncodingMode, padding: Option<char>, ) -> Result<Self, String>
Examples found in repository?
examples/hello_world.rs (line 8)
3fn main() {
4 let config = AlphabetsConfig::load_default().unwrap();
5 let alphabet_config = config.get_alphabet("cards").expect("cards alphabet not found");
6 let chars: Vec<char> = alphabet_config.chars.chars().collect();
7 let padding = alphabet_config.padding.as_ref().and_then(|s| s.chars().next());
8 let alphabet = Alphabet::new_with_mode(chars, alphabet_config.mode.clone(), padding).unwrap();
9
10 let data = b"Hello, World!";
11
12 println!("Original: {}", String::from_utf8_lossy(data));
13 println!("Alphabet: cards (base-{})", alphabet.base());
14 let encoded = encode(data, &alphabet);
15 println!("Encoded: {}", encoded);
16
17 let decoded = decode(&encoded, &alphabet).unwrap();
18 println!("Decoded: {}", String::from_utf8_lossy(&decoded));
19 println!("\nRoundtrip successful: {}", data == &decoded[..]);
20}pub fn new_with_mode_and_range( chars: Vec<char>, mode: EncodingMode, padding: Option<char>, start_codepoint: Option<u32>, ) -> Result<Self, String>
Sourcepub fn from_str(s: &str) -> Result<Self, String>
pub fn from_str(s: &str) -> Result<Self, String>
Examples found in repository?
examples/custom_alphabet.rs (line 5)
3fn main() {
4 // Create a custom alphabet with just 4 DNA bases
5 let dna_alphabet = Alphabet::from_str("ACGT").unwrap();
6
7 println!("DNA Alphabet (base-4)");
8 println!("=====================\n");
9
10 // Encode some data
11 let data = b"DNA";
12 let encoded = encode(data, &dna_alphabet);
13
14 println!("Original: {:?}", String::from_utf8_lossy(data));
15 println!("Encoded: {}", encoded);
16 println!("Length: {} bases\n", encoded.len());
17
18 // Decode it back
19 let decoded = decode(&encoded, &dna_alphabet).unwrap();
20 println!("Decoded: {:?}", String::from_utf8_lossy(&decoded));
21 println!("Match: {}", data == &decoded[..]);
22
23 // Try different data
24 println!("\n---\n");
25 let data2 = &[0xFF, 0x00, 0x42];
26 let encoded2 = encode(data2, &dna_alphabet);
27 println!("Binary {:?} encodes to: {}", data2, encoded2);
28}Sourcepub fn base(&self) -> usize
pub fn base(&self) -> usize
Examples found in repository?
examples/hello_world.rs (line 13)
3fn main() {
4 let config = AlphabetsConfig::load_default().unwrap();
5 let alphabet_config = config.get_alphabet("cards").expect("cards alphabet not found");
6 let chars: Vec<char> = alphabet_config.chars.chars().collect();
7 let padding = alphabet_config.padding.as_ref().and_then(|s| s.chars().next());
8 let alphabet = Alphabet::new_with_mode(chars, alphabet_config.mode.clone(), padding).unwrap();
9
10 let data = b"Hello, World!";
11
12 println!("Original: {}", String::from_utf8_lossy(data));
13 println!("Alphabet: cards (base-{})", alphabet.base());
14 let encoded = encode(data, &alphabet);
15 println!("Encoded: {}", encoded);
16
17 let decoded = decode(&encoded, &alphabet).unwrap();
18 println!("Decoded: {}", String::from_utf8_lossy(&decoded));
19 println!("\nRoundtrip successful: {}", data == &decoded[..]);
20}pub fn mode(&self) -> &EncodingMode
pub fn padding(&self) -> Option<char>
pub fn start_codepoint(&self) -> Option<u32>
pub fn encode_digit(&self, digit: usize) -> Option<char>
pub fn decode_char(&self, c: char) -> Option<usize>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Alphabet
impl RefUnwindSafe for Alphabet
impl Send for Alphabet
impl Sync for Alphabet
impl Unpin for Alphabet
impl UnwindSafe for Alphabet
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more