qr_encode/qr_encoder/
qr.rs1use 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 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}