link_cli/sequences/
char_to_unicode_symbol_converter.rs1use crate::link_storage::LinkStorage;
2use crate::sequences::AddressToRawNumberConverter;
3
4#[derive(Clone, Copy, Debug)]
5pub struct CharToUnicodeSymbolConverter {
6 address_to_number_converter: AddressToRawNumberConverter,
7 unicode_symbol_type: u32,
8}
9
10impl CharToUnicodeSymbolConverter {
11 pub fn new(
12 address_to_number_converter: AddressToRawNumberConverter,
13 unicode_symbol_type: u32,
14 ) -> Self {
15 Self {
16 address_to_number_converter,
17 unicode_symbol_type,
18 }
19 }
20
21 pub fn convert(&self, links: &mut LinkStorage, code_unit: u16) -> u32 {
22 let raw_number = self
23 .address_to_number_converter
24 .convert(u32::from(code_unit));
25 links.get_or_create(raw_number, self.unicode_symbol_type)
26 }
27}