qr_encode/qr_encoder/
qr.rs

1use qr_encoder::cell::{
2    Cell,
3    Point,
4    CellType,
5    Color
6};
7
8use qr_encoder::config::{QRConfig};
9use qr_encoder::util::{set_color, get_index_value};
10
11pub struct QR {
12    pub body: Vec<Cell>
13}
14
15impl QR {
16    pub fn setup(&mut self, config: &QRConfig) {
17        for alignment_point in config.finder_points.iter() {
18            let point = Point(alignment_point.0, alignment_point.1);
19            config.apply_finder_patterns(&mut self.body, point);
20            config.apply_separators(&mut self.body, *alignment_point);
21        }
22
23        if config.version != 1 {
24            let alignment_points = config.get_alignment_points(&self.body);
25            config.apply_alignment_patterns(&mut self.body, &alignment_points);
26        }
27
28
29        config.apply_reserve_format_areas(&mut self.body);
30        config.apply_dark_module(&mut self.body);
31        config.apply_timer_patterns(&mut self.body);
32
33        // version information area
34        if config.version > 6 {
35            config.apply_version_information_areas(&mut self.body);
36        }
37
38        println!("LENGTH IS {}, SIZE IS {}, VERSION: {}", self.body.len(), config.size, config.version);
39        println!("--- QR ENCODER READY FOR ENCODING ---");
40    }
41}