qrcode_rust_shared/qr_util.rs
1//! QR Code utilities
2
3/// Get BCH digit count
4pub fn get_bch_digit(data: i32) -> i32 {
5 let mut digit = 0;
6 let mut data = data;
7 while data != 0 {
8 digit += 1;
9 data >>= 1;
10 }
11 digit
12}
13
14/// Get length in bits for mode indicator
15pub fn get_length_in_bits(mode: i32, type_num: i32) -> i32 {
16 if mode != 4 {
17 // MODE_8BIT_BYTE
18 panic!("Invalid mode");
19 }
20
21 if (1..10).contains(&type_num) {
22 8
23 } else {
24 16
25 }
26}