qr_code/decode/
version_db.rs

1/* ***********************************************************************
2 * QR-code version information database
3 */
4#[derive(Copy, Clone, Debug)]
5pub struct RSParameters {
6    /// Small block size
7    pub bs: usize,
8    /// Small data words
9    pub dw: usize,
10    /// Number of small blocks
11    pub ns: usize,
12}
13
14#[derive(Copy, Clone, Debug)]
15pub struct VersionInfo {
16    pub data_bytes: usize,
17    /// Alignment pattern information
18    pub apat: [usize; 7],
19    pub ecc: [RSParameters; 4],
20}
21
22pub const VERSION_DATA_BASE: [VersionInfo; 41] = [
23    VersionInfo {
24        data_bytes: 0,
25        apat: [0; 7],
26        ecc: [RSParameters {
27            bs: 0,
28            dw: 0,
29            ns: 0,
30        }; 4],
31    },
32    VersionInfo {
33        data_bytes: 26,
34        apat: [0, 0, 0, 0, 0, 0, 0],
35        ecc: [
36            RSParameters {
37                bs: 26,
38                dw: 16,
39                ns: 1,
40            },
41            RSParameters {
42                bs: 26,
43                dw: 19,
44                ns: 1,
45            },
46            RSParameters {
47                bs: 26,
48                dw: 9,
49                ns: 1,
50            },
51            RSParameters {
52                bs: 26,
53                dw: 13,
54                ns: 1,
55            },
56        ],
57    },
58    VersionInfo {
59        data_bytes: 44,
60        apat: [6, 18, 0, 0, 0, 0, 0],
61        ecc: [
62            RSParameters {
63                bs: 44,
64                dw: 28,
65                ns: 1,
66            },
67            RSParameters {
68                bs: 44,
69                dw: 34,
70                ns: 1,
71            },
72            RSParameters {
73                bs: 44,
74                dw: 16,
75                ns: 1,
76            },
77            RSParameters {
78                bs: 44,
79                dw: 22,
80                ns: 1,
81            },
82        ],
83    },
84    VersionInfo {
85        data_bytes: 70,
86        apat: [6, 22, 0, 0, 0, 0, 0],
87        ecc: [
88            RSParameters {
89                bs: 70,
90                dw: 44,
91                ns: 1,
92            },
93            RSParameters {
94                bs: 70,
95                dw: 55,
96                ns: 1,
97            },
98            RSParameters {
99                bs: 35,
100                dw: 13,
101                ns: 2,
102            },
103            RSParameters {
104                bs: 35,
105                dw: 17,
106                ns: 2,
107            },
108        ],
109    },
110    VersionInfo {
111        data_bytes: 100,
112        apat: [6, 26, 0, 0, 0, 0, 0],
113        ecc: [
114            RSParameters {
115                bs: 50,
116                dw: 32,
117                ns: 2,
118            },
119            RSParameters {
120                bs: 100,
121                dw: 80,
122                ns: 1,
123            },
124            RSParameters {
125                bs: 25,
126                dw: 9,
127                ns: 4,
128            },
129            RSParameters {
130                bs: 50,
131                dw: 24,
132                ns: 2,
133            },
134        ],
135    },
136    VersionInfo {
137        data_bytes: 134,
138        apat: [6, 30, 0, 0, 0, 0, 0],
139        ecc: [
140            RSParameters {
141                bs: 67,
142                dw: 43,
143                ns: 2,
144            },
145            RSParameters {
146                bs: 134,
147                dw: 108,
148                ns: 1,
149            },
150            RSParameters {
151                bs: 33,
152                dw: 11,
153                ns: 2,
154            },
155            RSParameters {
156                bs: 33,
157                dw: 15,
158                ns: 2,
159            },
160        ],
161    },
162    VersionInfo {
163        data_bytes: 172,
164        apat: [6, 34, 0, 0, 0, 0, 0],
165        ecc: [
166            RSParameters {
167                bs: 43,
168                dw: 27,
169                ns: 4,
170            },
171            RSParameters {
172                bs: 86,
173                dw: 68,
174                ns: 2,
175            },
176            RSParameters {
177                bs: 43,
178                dw: 15,
179                ns: 4,
180            },
181            RSParameters {
182                bs: 43,
183                dw: 19,
184                ns: 4,
185            },
186        ],
187    },
188    VersionInfo {
189        data_bytes: 196,
190        apat: [6, 22, 38, 0, 0, 0, 0],
191        ecc: [
192            RSParameters {
193                bs: 49,
194                dw: 31,
195                ns: 4,
196            },
197            RSParameters {
198                bs: 98,
199                dw: 78,
200                ns: 2,
201            },
202            RSParameters {
203                bs: 39,
204                dw: 13,
205                ns: 4,
206            },
207            RSParameters {
208                bs: 32,
209                dw: 14,
210                ns: 2,
211            },
212        ],
213    },
214    VersionInfo {
215        data_bytes: 242,
216        apat: [6, 24, 42, 0, 0, 0, 0],
217        ecc: [
218            RSParameters {
219                bs: 60,
220                dw: 38,
221                ns: 2,
222            },
223            RSParameters {
224                bs: 121,
225                dw: 97,
226                ns: 2,
227            },
228            RSParameters {
229                bs: 40,
230                dw: 14,
231                ns: 4,
232            },
233            RSParameters {
234                bs: 40,
235                dw: 18,
236                ns: 4,
237            },
238        ],
239    },
240    VersionInfo {
241        data_bytes: 292,
242        apat: [6, 26, 46, 0, 0, 0, 0],
243        ecc: [
244            RSParameters {
245                bs: 58,
246                dw: 36,
247                ns: 3,
248            },
249            RSParameters {
250                bs: 146,
251                dw: 116,
252                ns: 2,
253            },
254            RSParameters {
255                bs: 36,
256                dw: 12,
257                ns: 4,
258            },
259            RSParameters {
260                bs: 36,
261                dw: 16,
262                ns: 4,
263            },
264        ],
265    },
266    VersionInfo {
267        data_bytes: 346,
268        apat: [6, 28, 50, 0, 0, 0, 0],
269        ecc: [
270            RSParameters {
271                bs: 69,
272                dw: 43,
273                ns: 4,
274            },
275            RSParameters {
276                bs: 86,
277                dw: 68,
278                ns: 2,
279            },
280            RSParameters {
281                bs: 43,
282                dw: 15,
283                ns: 6,
284            },
285            RSParameters {
286                bs: 43,
287                dw: 19,
288                ns: 6,
289            },
290        ],
291    },
292    VersionInfo {
293        data_bytes: 404,
294        apat: [6, 30, 54, 0, 0, 0, 0],
295        ecc: [
296            RSParameters {
297                bs: 80,
298                dw: 50,
299                ns: 1,
300            },
301            RSParameters {
302                bs: 101,
303                dw: 81,
304                ns: 4,
305            },
306            RSParameters {
307                bs: 36,
308                dw: 12,
309                ns: 3,
310            },
311            RSParameters {
312                bs: 50,
313                dw: 22,
314                ns: 4,
315            },
316        ],
317    },
318    VersionInfo {
319        data_bytes: 466,
320        apat: [6, 32, 58, 0, 0, 0, 0],
321        ecc: [
322            RSParameters {
323                bs: 58,
324                dw: 36,
325                ns: 6,
326            },
327            RSParameters {
328                bs: 116,
329                dw: 92,
330                ns: 2,
331            },
332            RSParameters {
333                bs: 42,
334                dw: 14,
335                ns: 7,
336            },
337            RSParameters {
338                bs: 46,
339                dw: 20,
340                ns: 4,
341            },
342        ],
343    },
344    VersionInfo {
345        data_bytes: 532,
346        apat: [6, 34, 62, 0, 0, 0, 0],
347        ecc: [
348            RSParameters {
349                bs: 59,
350                dw: 37,
351                ns: 8,
352            },
353            RSParameters {
354                bs: 133,
355                dw: 107,
356                ns: 4,
357            },
358            RSParameters {
359                bs: 33,
360                dw: 11,
361                ns: 12,
362            },
363            RSParameters {
364                bs: 44,
365                dw: 20,
366                ns: 8,
367            },
368        ],
369    },
370    VersionInfo {
371        data_bytes: 581,
372        apat: [6, 26, 46, 66, 0, 0, 0],
373        ecc: [
374            RSParameters {
375                bs: 64,
376                dw: 40,
377                ns: 4,
378            },
379            RSParameters {
380                bs: 145,
381                dw: 115,
382                ns: 3,
383            },
384            RSParameters {
385                bs: 36,
386                dw: 12,
387                ns: 11,
388            },
389            RSParameters {
390                bs: 36,
391                dw: 16,
392                ns: 11,
393            },
394        ],
395    },
396    VersionInfo {
397        data_bytes: 655,
398        apat: [6, 26, 48, 70, 0, 0, 0],
399        ecc: [
400            RSParameters {
401                bs: 65,
402                dw: 41,
403                ns: 5,
404            },
405            RSParameters {
406                bs: 109,
407                dw: 87,
408                ns: 5,
409            },
410            RSParameters {
411                bs: 36,
412                dw: 12,
413                ns: 11,
414            },
415            RSParameters {
416                bs: 54,
417                dw: 24,
418                ns: 5,
419            },
420        ],
421    },
422    VersionInfo {
423        data_bytes: 733,
424        apat: [6, 26, 50, 74, 0, 0, 0],
425        ecc: [
426            RSParameters {
427                bs: 73,
428                dw: 45,
429                ns: 7,
430            },
431            RSParameters {
432                bs: 122,
433                dw: 98,
434                ns: 5,
435            },
436            RSParameters {
437                bs: 45,
438                dw: 15,
439                ns: 3,
440            },
441            RSParameters {
442                bs: 43,
443                dw: 19,
444                ns: 15,
445            },
446        ],
447    },
448    VersionInfo {
449        data_bytes: 815,
450        apat: [6, 30, 54, 78, 0, 0, 0],
451        ecc: [
452            RSParameters {
453                bs: 74,
454                dw: 46,
455                ns: 10,
456            },
457            RSParameters {
458                bs: 135,
459                dw: 107,
460                ns: 1,
461            },
462            RSParameters {
463                bs: 42,
464                dw: 14,
465                ns: 2,
466            },
467            RSParameters {
468                bs: 50,
469                dw: 22,
470                ns: 1,
471            },
472        ],
473    },
474    VersionInfo {
475        data_bytes: 901,
476        apat: [6, 30, 56, 82, 0, 0, 0],
477        ecc: [
478            RSParameters {
479                bs: 69,
480                dw: 43,
481                ns: 9,
482            },
483            RSParameters {
484                bs: 150,
485                dw: 120,
486                ns: 5,
487            },
488            RSParameters {
489                bs: 42,
490                dw: 14,
491                ns: 2,
492            },
493            RSParameters {
494                bs: 50,
495                dw: 22,
496                ns: 17,
497            },
498        ],
499    },
500    VersionInfo {
501        data_bytes: 991,
502        apat: [6, 30, 58, 86, 0, 0, 0],
503        ecc: [
504            RSParameters {
505                bs: 70,
506                dw: 44,
507                ns: 3,
508            },
509            RSParameters {
510                bs: 141,
511                dw: 113,
512                ns: 3,
513            },
514            RSParameters {
515                bs: 39,
516                dw: 13,
517                ns: 9,
518            },
519            RSParameters {
520                bs: 47,
521                dw: 21,
522                ns: 17,
523            },
524        ],
525    },
526    VersionInfo {
527        data_bytes: 1085,
528        apat: [6, 34, 62, 90, 0, 0, 0],
529        ecc: [
530            RSParameters {
531                bs: 67,
532                dw: 41,
533                ns: 3,
534            },
535            RSParameters {
536                bs: 135,
537                dw: 107,
538                ns: 3,
539            },
540            RSParameters {
541                bs: 43,
542                dw: 15,
543                ns: 15,
544            },
545            RSParameters {
546                bs: 54,
547                dw: 24,
548                ns: 15,
549            },
550        ],
551    },
552    VersionInfo {
553        data_bytes: 1156,
554        apat: [6, 28, 50, 72, 92, 0, 0],
555        ecc: [
556            RSParameters {
557                bs: 68,
558                dw: 42,
559                ns: 17,
560            },
561            RSParameters {
562                bs: 144,
563                dw: 116,
564                ns: 4,
565            },
566            RSParameters {
567                bs: 46,
568                dw: 16,
569                ns: 19,
570            },
571            RSParameters {
572                bs: 50,
573                dw: 22,
574                ns: 17,
575            },
576        ],
577    },
578    VersionInfo {
579        data_bytes: 1258,
580        apat: [6, 26, 50, 74, 98, 0, 0],
581        ecc: [
582            RSParameters {
583                bs: 74,
584                dw: 46,
585                ns: 17,
586            },
587            RSParameters {
588                bs: 139,
589                dw: 111,
590                ns: 2,
591            },
592            RSParameters {
593                bs: 37,
594                dw: 13,
595                ns: 34,
596            },
597            RSParameters {
598                bs: 54,
599                dw: 24,
600                ns: 7,
601            },
602        ],
603    },
604    VersionInfo {
605        data_bytes: 1364,
606        apat: [6, 30, 54, 78, 102, 0, 0],
607        ecc: [
608            RSParameters {
609                bs: 75,
610                dw: 47,
611                ns: 4,
612            },
613            RSParameters {
614                bs: 151,
615                dw: 121,
616                ns: 4,
617            },
618            RSParameters {
619                bs: 45,
620                dw: 15,
621                ns: 16,
622            },
623            RSParameters {
624                bs: 54,
625                dw: 24,
626                ns: 11,
627            },
628        ],
629    },
630    VersionInfo {
631        data_bytes: 1474,
632        apat: [6, 28, 54, 80, 106, 0, 0],
633        ecc: [
634            RSParameters {
635                bs: 73,
636                dw: 45,
637                ns: 6,
638            },
639            RSParameters {
640                bs: 147,
641                dw: 117,
642                ns: 6,
643            },
644            RSParameters {
645                bs: 46,
646                dw: 16,
647                ns: 30,
648            },
649            RSParameters {
650                bs: 54,
651                dw: 24,
652                ns: 11,
653            },
654        ],
655    },
656    VersionInfo {
657        data_bytes: 1588,
658        apat: [6, 32, 58, 84, 110, 0, 0],
659        ecc: [
660            RSParameters {
661                bs: 75,
662                dw: 47,
663                ns: 8,
664            },
665            RSParameters {
666                bs: 132,
667                dw: 106,
668                ns: 8,
669            },
670            RSParameters {
671                bs: 45,
672                dw: 15,
673                ns: 22,
674            },
675            RSParameters {
676                bs: 54,
677                dw: 24,
678                ns: 7,
679            },
680        ],
681    },
682    VersionInfo {
683        data_bytes: 1706,
684        apat: [6, 30, 58, 86, 114, 0, 0],
685        ecc: [
686            RSParameters {
687                bs: 74,
688                dw: 46,
689                ns: 19,
690            },
691            RSParameters {
692                bs: 142,
693                dw: 114,
694                ns: 10,
695            },
696            RSParameters {
697                bs: 46,
698                dw: 16,
699                ns: 33,
700            },
701            RSParameters {
702                bs: 50,
703                dw: 22,
704                ns: 28,
705            },
706        ],
707    },
708    VersionInfo {
709        data_bytes: 1828,
710        apat: [6, 34, 62, 90, 118, 0, 0],
711        ecc: [
712            RSParameters {
713                bs: 73,
714                dw: 45,
715                ns: 22,
716            },
717            RSParameters {
718                bs: 152,
719                dw: 122,
720                ns: 8,
721            },
722            RSParameters {
723                bs: 45,
724                dw: 15,
725                ns: 12,
726            },
727            RSParameters {
728                bs: 53,
729                dw: 23,
730                ns: 8,
731            },
732        ],
733    },
734    VersionInfo {
735        data_bytes: 1921,
736        apat: [6, 26, 50, 74, 98, 122, 0],
737        ecc: [
738            RSParameters {
739                bs: 73,
740                dw: 45,
741                ns: 3,
742            },
743            RSParameters {
744                bs: 147,
745                dw: 117,
746                ns: 3,
747            },
748            RSParameters {
749                bs: 45,
750                dw: 15,
751                ns: 11,
752            },
753            RSParameters {
754                bs: 54,
755                dw: 24,
756                ns: 4,
757            },
758        ],
759    },
760    VersionInfo {
761        data_bytes: 2051,
762        apat: [6, 30, 54, 78, 102, 126, 0],
763        ecc: [
764            RSParameters {
765                bs: 73,
766                dw: 45,
767                ns: 21,
768            },
769            RSParameters {
770                bs: 146,
771                dw: 116,
772                ns: 7,
773            },
774            RSParameters {
775                bs: 45,
776                dw: 15,
777                ns: 19,
778            },
779            RSParameters {
780                bs: 53,
781                dw: 23,
782                ns: 1,
783            },
784        ],
785    },
786    VersionInfo {
787        data_bytes: 2185,
788        apat: [6, 26, 52, 78, 104, 130, 0],
789        ecc: [
790            RSParameters {
791                bs: 75,
792                dw: 47,
793                ns: 19,
794            },
795            RSParameters {
796                bs: 145,
797                dw: 115,
798                ns: 5,
799            },
800            RSParameters {
801                bs: 45,
802                dw: 15,
803                ns: 23,
804            },
805            RSParameters {
806                bs: 54,
807                dw: 24,
808                ns: 15,
809            },
810        ],
811    },
812    VersionInfo {
813        data_bytes: 2323,
814        apat: [6, 30, 56, 82, 108, 134, 0],
815        ecc: [
816            RSParameters {
817                bs: 74,
818                dw: 46,
819                ns: 2,
820            },
821            RSParameters {
822                bs: 145,
823                dw: 115,
824                ns: 13,
825            },
826            RSParameters {
827                bs: 45,
828                dw: 15,
829                ns: 23,
830            },
831            RSParameters {
832                bs: 54,
833                dw: 24,
834                ns: 42,
835            },
836        ],
837    },
838    VersionInfo {
839        data_bytes: 2465,
840        apat: [6, 34, 60, 86, 112, 138, 0],
841        ecc: [
842            RSParameters {
843                bs: 74,
844                dw: 46,
845                ns: 10,
846            },
847            RSParameters {
848                bs: 145,
849                dw: 115,
850                ns: 17,
851            },
852            RSParameters {
853                bs: 45,
854                dw: 15,
855                ns: 19,
856            },
857            RSParameters {
858                bs: 54,
859                dw: 24,
860                ns: 10,
861            },
862        ],
863    },
864    VersionInfo {
865        data_bytes: 2611,
866        apat: [6, 30, 58, 86, 114, 142, 0],
867        ecc: [
868            RSParameters {
869                bs: 74,
870                dw: 46,
871                ns: 14,
872            },
873            RSParameters {
874                bs: 145,
875                dw: 115,
876                ns: 17,
877            },
878            RSParameters {
879                bs: 45,
880                dw: 15,
881                ns: 11,
882            },
883            RSParameters {
884                bs: 54,
885                dw: 24,
886                ns: 29,
887            },
888        ],
889    },
890    VersionInfo {
891        data_bytes: 2761,
892        apat: [6, 34, 62, 90, 118, 146, 0],
893        ecc: [
894            RSParameters {
895                bs: 74,
896                dw: 46,
897                ns: 14,
898            },
899            RSParameters {
900                bs: 145,
901                dw: 115,
902                ns: 13,
903            },
904            RSParameters {
905                bs: 46,
906                dw: 16,
907                ns: 59,
908            },
909            RSParameters {
910                bs: 54,
911                dw: 24,
912                ns: 44,
913            },
914        ],
915    },
916    VersionInfo {
917        data_bytes: 2876,
918        apat: [6, 30, 54, 78, 102, 126, 150],
919        ecc: [
920            RSParameters {
921                bs: 75,
922                dw: 47,
923                ns: 12,
924            },
925            RSParameters {
926                bs: 151,
927                dw: 121,
928                ns: 12,
929            },
930            RSParameters {
931                bs: 45,
932                dw: 15,
933                ns: 22,
934            },
935            RSParameters {
936                bs: 54,
937                dw: 24,
938                ns: 39,
939            },
940        ],
941    },
942    VersionInfo {
943        data_bytes: 3034,
944        apat: [6, 24, 50, 76, 102, 128, 154],
945        ecc: [
946            RSParameters {
947                bs: 75,
948                dw: 47,
949                ns: 6,
950            },
951            RSParameters {
952                bs: 151,
953                dw: 121,
954                ns: 6,
955            },
956            RSParameters {
957                bs: 45,
958                dw: 15,
959                ns: 2,
960            },
961            RSParameters {
962                bs: 54,
963                dw: 24,
964                ns: 46,
965            },
966        ],
967    },
968    VersionInfo {
969        data_bytes: 3196,
970        apat: [6, 28, 54, 80, 106, 132, 158],
971        ecc: [
972            RSParameters {
973                bs: 74,
974                dw: 46,
975                ns: 29,
976            },
977            RSParameters {
978                bs: 152,
979                dw: 122,
980                ns: 17,
981            },
982            RSParameters {
983                bs: 45,
984                dw: 15,
985                ns: 24,
986            },
987            RSParameters {
988                bs: 54,
989                dw: 24,
990                ns: 49,
991            },
992        ],
993    },
994    VersionInfo {
995        data_bytes: 3362,
996        apat: [6, 32, 58, 84, 110, 136, 162],
997        ecc: [
998            RSParameters {
999                bs: 74,
1000                dw: 46,
1001                ns: 13,
1002            },
1003            RSParameters {
1004                bs: 152,
1005                dw: 122,
1006                ns: 4,
1007            },
1008            RSParameters {
1009                bs: 45,
1010                dw: 15,
1011                ns: 42,
1012            },
1013            RSParameters {
1014                bs: 54,
1015                dw: 24,
1016                ns: 48,
1017            },
1018        ],
1019    },
1020    VersionInfo {
1021        data_bytes: 3532,
1022        apat: [6, 26, 54, 82, 110, 138, 166],
1023        ecc: [
1024            RSParameters {
1025                bs: 75,
1026                dw: 47,
1027                ns: 40,
1028            },
1029            RSParameters {
1030                bs: 147,
1031                dw: 117,
1032                ns: 20,
1033            },
1034            RSParameters {
1035                bs: 45,
1036                dw: 15,
1037                ns: 10,
1038            },
1039            RSParameters {
1040                bs: 54,
1041                dw: 24,
1042                ns: 43,
1043            },
1044        ],
1045    },
1046    VersionInfo {
1047        data_bytes: 3706,
1048        apat: [6, 30, 58, 86, 114, 142, 170],
1049        ecc: [
1050            RSParameters {
1051                bs: 75,
1052                dw: 47,
1053                ns: 18,
1054            },
1055            RSParameters {
1056                bs: 148,
1057                dw: 118,
1058                ns: 19,
1059            },
1060            RSParameters {
1061                bs: 45,
1062                dw: 15,
1063                ns: 20,
1064            },
1065            RSParameters {
1066                bs: 54,
1067                dw: 24,
1068                ns: 34,
1069            },
1070        ],
1071    },
1072];