File Coverage

blib/lib/Sereal/Decoder/Constants.pm
Criterion Covered Total %
statement 10 10 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 14 14 100.0


line stmt bran cond sub pod time code
1             package Sereal::Decoder::Constants;
2 71     71   5427561 use strict;
  71         677  
  71         1773  
3 71     71   361 use warnings;
  71         128  
  71         17314  
4             require Exporter;
5             our @ISA= qw(Exporter);
6              
7             our $VERSION= '4.011'; # Don't forget to update the TestCompat set for testing against installed encoders!
8              
9             our ( @EXPORT_OK, %DEFINE, %TAG_INFO_HASH, @TAG_INFO_ARRAY );
10              
11             our %EXPORT_TAGS= ( all => \@EXPORT_OK );
12              
13             # start autoupdated section - do not modify directly
14              
15             BEGIN {
16 71     71   4943 %DEFINE= (
17             "SRL_HDR_ALIAS" => 46,
18             "SRL_HDR_ARRAY" => 43,
19             "SRL_HDR_ARRAYREF" => 64,
20             "SRL_HDR_ARRAYREF_HIGH" => 79,
21             "SRL_HDR_ARRAYREF_LOW" => 64,
22             "SRL_HDR_BINARY" => 38,
23             "SRL_HDR_CANONICAL_UNDEF" => 57,
24             "SRL_HDR_COPY" => 47,
25             "SRL_HDR_DOUBLE" => 35,
26             "SRL_HDR_EXTEND" => 62,
27             "SRL_HDR_FALSE" => 58,
28             "SRL_HDR_FLOAT" => 34,
29             "SRL_HDR_HASH" => 42,
30             "SRL_HDR_HASHREF" => 80,
31             "SRL_HDR_HASHREF_HIGH" => 95,
32             "SRL_HDR_HASHREF_LOW" => 80,
33             "SRL_HDR_LONG_DOUBLE" => 36,
34             "SRL_HDR_MANY" => 60,
35             "SRL_HDR_NEG" => 16,
36             "SRL_HDR_NEG_HIGH" => 31,
37             "SRL_HDR_NEG_LOW" => 16,
38             "SRL_HDR_OBJECT" => 44,
39             "SRL_HDR_OBJECTV" => 45,
40             "SRL_HDR_OBJECTV_FREEZE" => 51,
41             "SRL_HDR_OBJECT_FREEZE" => 50,
42             "SRL_HDR_PACKET_START" => 61,
43             "SRL_HDR_PAD" => 63,
44             "SRL_HDR_POS" => 0,
45             "SRL_HDR_POS_HIGH" => 15,
46             "SRL_HDR_POS_LOW" => 0,
47             "SRL_HDR_REFN" => 40,
48             "SRL_HDR_REFP" => 41,
49             "SRL_HDR_REGEXP" => 49,
50             "SRL_HDR_RESERVED" => 52,
51             "SRL_HDR_RESERVED_HIGH" => 56,
52             "SRL_HDR_RESERVED_LOW" => 52,
53             "SRL_HDR_SHORT_BINARY" => 96,
54             "SRL_HDR_SHORT_BINARY_HIGH" => 127,
55             "SRL_HDR_SHORT_BINARY_LOW" => 96,
56             "SRL_HDR_STR_UTF8" => 39,
57             "SRL_HDR_TRACK_FLAG" => 128,
58             "SRL_HDR_TRUE" => 59,
59             "SRL_HDR_UNDEF" => 37,
60             "SRL_HDR_VARINT" => 32,
61             "SRL_HDR_WEAKEN" => 48,
62             "SRL_HDR_ZIGZAG" => 33,
63             "SRL_MAGIC_STRING" => "=srl",
64             "SRL_MAGIC_STRING_HIGHBIT" => "=\363rl",
65             "SRL_MAGIC_STRING_HIGHBIT_UINT_BE" => "1039364716",
66             "SRL_MAGIC_STRING_HIGHBIT_UINT_LE" => "1819472701",
67             "SRL_MAGIC_STRING_HIGHBIT_UTF8" => "=\303\263rl",
68             "SRL_MAGIC_STRING_HIGHBIT_UTF8_UINT_BE" => "1036235634",
69             "SRL_MAGIC_STRING_HIGHBIT_UTF8_UINT_LE" => "1924383549",
70             "SRL_MAGIC_STRING_UINT_BE" => "1030976108",
71             "SRL_MAGIC_STRING_UINT_LE" => "1819439933",
72             "SRL_MAGIC_STRLEN" => 4,
73             "SRL_MASK_ARRAYREF_COUNT" => 15,
74             "SRL_MASK_HASHREF_COUNT" => 15,
75             "SRL_MASK_SHORT_BINARY_LEN" => 31,
76             "SRL_NEG_MIN_SIZE" => 16,
77             "SRL_POS_MAX_SIZE" => 15,
78             "SRL_PROTOCOL_ENCODING_MASK" => 240,
79             "SRL_PROTOCOL_ENCODING_RAW" => 0,
80             "SRL_PROTOCOL_ENCODING_SNAPPY" => 16,
81             "SRL_PROTOCOL_ENCODING_SNAPPY_INCREMENTAL" => 32,
82             "SRL_PROTOCOL_ENCODING_ZLIB" => 48,
83             "SRL_PROTOCOL_ENCODING_ZSTD" => 64,
84             "SRL_PROTOCOL_HDR_CONTINUE" => 8,
85             "SRL_PROTOCOL_HDR_USER_DATA" => 1,
86             "SRL_PROTOCOL_VERSION" => 4,
87             "SRL_PROTOCOL_VERSION_BITS" => 4,
88             "SRL_PROTOCOL_VERSION_MASK" => 15
89             );
90              
91             }
92              
93 71     71   441 use constant \%DEFINE;
  71         116  
  71         145306  
94             push @EXPORT_OK, keys %DEFINE;
95             @TAG_INFO_ARRAY= (
96              
97             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
98             {
99             "comment" => "small positive integer - value in low 4 bits (identity)",
100             "masked" => 1,
101             "masked_val" => 0,
102             "name" => "POS_0",
103             "type_name" => "POS",
104             "type_value" => 0,
105             "value" => 0
106             },
107              
108             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
109             {
110             "masked" => 1,
111             "masked_val" => 1,
112             "name" => "POS_1",
113             "type_name" => "POS",
114             "type_value" => 0,
115             "value" => 1
116             },
117              
118             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
119             {
120             "masked" => 1,
121             "masked_val" => 2,
122             "name" => "POS_2",
123             "type_name" => "POS",
124             "type_value" => 0,
125             "value" => 2
126             },
127              
128             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
129             {
130             "masked" => 1,
131             "masked_val" => 3,
132             "name" => "POS_3",
133             "type_name" => "POS",
134             "type_value" => 0,
135             "value" => 3
136             },
137              
138             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
139             {
140             "masked" => 1,
141             "masked_val" => 4,
142             "name" => "POS_4",
143             "type_name" => "POS",
144             "type_value" => 0,
145             "value" => 4
146             },
147              
148             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
149             {
150             "masked" => 1,
151             "masked_val" => 5,
152             "name" => "POS_5",
153             "type_name" => "POS",
154             "type_value" => 0,
155             "value" => 5
156             },
157              
158             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
159             {
160             "masked" => 1,
161             "masked_val" => 6,
162             "name" => "POS_6",
163             "type_name" => "POS",
164             "type_value" => 0,
165             "value" => 6
166             },
167              
168             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
169             {
170             "masked" => 1,
171             "masked_val" => 7,
172             "name" => "POS_7",
173             "type_name" => "POS",
174             "type_value" => 0,
175             "value" => 7
176             },
177              
178             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
179             {
180             "masked" => 1,
181             "masked_val" => 8,
182             "name" => "POS_8",
183             "type_name" => "POS",
184             "type_value" => 0,
185             "value" => 8
186             },
187              
188             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
189             {
190             "masked" => 1,
191             "masked_val" => 9,
192             "name" => "POS_9",
193             "type_name" => "POS",
194             "type_value" => 0,
195             "value" => 9
196             },
197              
198             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
199             {
200             "masked" => 1,
201             "masked_val" => 10,
202             "name" => "POS_10",
203             "type_name" => "POS",
204             "type_value" => 0,
205             "value" => 10
206             },
207              
208             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
209             {
210             "masked" => 1,
211             "masked_val" => 11,
212             "name" => "POS_11",
213             "type_name" => "POS",
214             "type_value" => 0,
215             "value" => 11
216             },
217              
218             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
219             {
220             "masked" => 1,
221             "masked_val" => 12,
222             "name" => "POS_12",
223             "type_name" => "POS",
224             "type_value" => 0,
225             "value" => 12
226             },
227              
228             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
229             {
230             "masked" => 1,
231             "masked_val" => 13,
232             "name" => "POS_13",
233             "type_name" => "POS",
234             "type_value" => 0,
235             "value" => 13
236             },
237              
238             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
239             {
240             "masked" => 1,
241             "masked_val" => 14,
242             "name" => "POS_14",
243             "type_name" => "POS",
244             "type_value" => 0,
245             "value" => 14
246             },
247              
248             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
249             {
250             "masked" => 1,
251             "masked_val" => 15,
252             "name" => "POS_15",
253             "type_name" => "POS",
254             "type_value" => 0,
255             "value" => 15
256             },
257              
258             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
259             {
260             "comment" => "small negative integer - value in low 4 bits (k+32)",
261             "masked" => 1,
262             "masked_val" => 16,
263             "name" => "NEG_16",
264             "type_name" => "NEG",
265             "type_value" => 16,
266             "value" => 16
267             },
268              
269             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
270             {
271             "masked" => 1,
272             "masked_val" => 15,
273             "name" => "NEG_15",
274             "type_name" => "NEG",
275             "type_value" => 16,
276             "value" => 17
277             },
278              
279             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
280             {
281             "masked" => 1,
282             "masked_val" => 14,
283             "name" => "NEG_14",
284             "type_name" => "NEG",
285             "type_value" => 16,
286             "value" => 18
287             },
288              
289             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
290             {
291             "masked" => 1,
292             "masked_val" => 13,
293             "name" => "NEG_13",
294             "type_name" => "NEG",
295             "type_value" => 16,
296             "value" => 19
297             },
298              
299             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
300             {
301             "masked" => 1,
302             "masked_val" => 12,
303             "name" => "NEG_12",
304             "type_name" => "NEG",
305             "type_value" => 16,
306             "value" => 20
307             },
308              
309             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
310             {
311             "masked" => 1,
312             "masked_val" => 11,
313             "name" => "NEG_11",
314             "type_name" => "NEG",
315             "type_value" => 16,
316             "value" => 21
317             },
318              
319             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
320             {
321             "masked" => 1,
322             "masked_val" => 10,
323             "name" => "NEG_10",
324             "type_name" => "NEG",
325             "type_value" => 16,
326             "value" => 22
327             },
328              
329             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
330             {
331             "masked" => 1,
332             "masked_val" => 9,
333             "name" => "NEG_9",
334             "type_name" => "NEG",
335             "type_value" => 16,
336             "value" => 23
337             },
338              
339             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
340             {
341             "masked" => 1,
342             "masked_val" => 8,
343             "name" => "NEG_8",
344             "type_name" => "NEG",
345             "type_value" => 16,
346             "value" => 24
347             },
348              
349             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
350             {
351             "masked" => 1,
352             "masked_val" => 7,
353             "name" => "NEG_7",
354             "type_name" => "NEG",
355             "type_value" => 16,
356             "value" => 25
357             },
358              
359             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
360             {
361             "masked" => 1,
362             "masked_val" => 6,
363             "name" => "NEG_6",
364             "type_name" => "NEG",
365             "type_value" => 16,
366             "value" => 26
367             },
368              
369             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
370             {
371             "masked" => 1,
372             "masked_val" => 5,
373             "name" => "NEG_5",
374             "type_name" => "NEG",
375             "type_value" => 16,
376             "value" => 27
377             },
378              
379             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
380             {
381             "masked" => 1,
382             "masked_val" => 4,
383             "name" => "NEG_4",
384             "type_name" => "NEG",
385             "type_value" => 16,
386             "value" => 28
387             },
388              
389             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
390             {
391             "masked" => 1,
392             "masked_val" => 3,
393             "name" => "NEG_3",
394             "type_name" => "NEG",
395             "type_value" => 16,
396             "value" => 29
397             },
398              
399             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
400             {
401             "masked" => 1,
402             "masked_val" => 2,
403             "name" => "NEG_2",
404             "type_name" => "NEG",
405             "type_value" => 16,
406             "value" => 30
407             },
408              
409             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
410             {
411             "masked" => 1,
412             "masked_val" => 1,
413             "name" => "NEG_1",
414             "type_name" => "NEG",
415             "type_value" => 16,
416             "value" => 31
417             },
418              
419             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
420             {
421             "comment" => " - Varint variable length integer",
422             "name" => "VARINT",
423             "type_name" => "VARINT",
424             "type_value" => 32,
425             "value" => 32
426             },
427              
428             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
429             {
430             "comment" => " - Zigzag variable length integer",
431             "name" => "ZIGZAG",
432             "type_name" => "ZIGZAG",
433             "type_value" => 33,
434             "value" => 33
435             },
436              
437             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
438             {
439             "comment" => "",
440             "name" => "FLOAT",
441             "type_name" => "FLOAT",
442             "type_value" => 34,
443             "value" => 34
444             },
445              
446             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
447             {
448             "comment" => "",
449             "name" => "DOUBLE",
450             "type_name" => "DOUBLE",
451             "type_value" => 35,
452             "value" => 35
453             },
454              
455             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
456             {
457             "comment" => "",
458             "name" => "LONG_DOUBLE",
459             "type_name" => "LONG_DOUBLE",
460             "type_value" => 36,
461             "value" => 36
462             },
463              
464             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
465             {
466             "comment" => "None - Perl undef var; eg my \$var= undef;",
467             "name" => "UNDEF",
468             "type_name" => "UNDEF",
469             "type_value" => 37,
470             "value" => 37
471             },
472              
473             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
474             {
475             "comment" => " - binary/(latin1) string",
476             "name" => "BINARY",
477             "type_name" => "BINARY",
478             "type_value" => 38,
479             "value" => 38
480             },
481              
482             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
483             {
484             "comment" => " - utf8 string",
485             "name" => "STR_UTF8",
486             "type_name" => "STR_UTF8",
487             "type_value" => 39,
488             "value" => 39
489             },
490              
491             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
492             {
493             "comment" => " - ref to next item",
494             "name" => "REFN",
495             "type_name" => "REFN",
496             "type_value" => 40,
497             "value" => 40
498             },
499              
500             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
501             {
502             "comment" => " - ref to previous item stored at offset",
503             "name" => "REFP",
504             "type_name" => "REFP",
505             "type_value" => 41,
506             "value" => 41
507             },
508              
509             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
510             {
511             "comment" =>
512             " [ ...] - count followed by key/value pairs",
513             "name" => "HASH",
514             "type_name" => "HASH",
515             "type_value" => 42,
516             "value" => 42
517             },
518              
519             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
520             {
521             "comment" => " [ ...] - count followed by items",
522             "name" => "ARRAY",
523             "type_name" => "ARRAY",
524             "type_value" => 43,
525             "value" => 43
526             },
527              
528             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
529             {
530             "comment" => " - class, object-item",
531             "name" => "OBJECT",
532             "type_name" => "OBJECT",
533             "type_value" => 44,
534             "value" => 44
535             },
536              
537             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
538             {
539             "comment" =>
540             " - offset of previously used classname tag - object-item",
541             "name" => "OBJECTV",
542             "type_name" => "OBJECTV",
543             "type_value" => 45,
544             "value" => 45
545             },
546              
547             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
548             {
549             "comment" => " - alias to item defined at offset",
550             "name" => "ALIAS",
551             "type_name" => "ALIAS",
552             "type_value" => 46,
553             "value" => 46
554             },
555              
556             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
557             {
558             "comment" => " - copy of item defined at offset",
559             "name" => "COPY",
560             "type_name" => "COPY",
561             "type_value" => 47,
562             "value" => 47
563             },
564              
565             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
566             {
567             "comment" => " - Weaken the following reference",
568             "name" => "WEAKEN",
569             "type_name" => "WEAKEN",
570             "type_value" => 48,
571             "value" => 48
572             },
573              
574             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
575             {
576             "comment" => " ",
577             "name" => "REGEXP",
578             "type_name" => "REGEXP",
579             "type_value" => 49,
580             "value" => 49
581             },
582              
583             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
584             {
585             "comment" =>
586             " - class, object-item. Need to call \"THAW\" method on class after decoding",
587             "name" => "OBJECT_FREEZE",
588             "type_name" => "OBJECT_FREEZE",
589             "type_value" => 50,
590             "value" => 50
591             },
592              
593             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
594             {
595             "comment" =>
596             " - (OBJECTV_FREEZE is to OBJECT_FREEZE as OBJECTV is to OBJECT)",
597             "name" => "OBJECTV_FREEZE",
598             "type_name" => "OBJECTV_FREEZE",
599             "type_value" => 51,
600             "value" => 51
601             },
602              
603             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
604             {
605             "comment" => "reserved",
606             "masked" => 1,
607             "masked_val" => 0,
608             "name" => "RESERVED_0",
609             "type_name" => "RESERVED",
610             "type_value" => 52,
611             "value" => 52
612             },
613              
614             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
615             {
616             "masked" => 1,
617             "masked_val" => 1,
618             "name" => "RESERVED_1",
619             "type_name" => "RESERVED",
620             "type_value" => 52,
621             "value" => 53
622             },
623              
624             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
625             {
626             "masked" => 1,
627             "masked_val" => 2,
628             "name" => "RESERVED_2",
629             "type_name" => "RESERVED",
630             "type_value" => 52,
631             "value" => 54
632             },
633              
634             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
635             {
636             "masked" => 1,
637             "masked_val" => 3,
638             "name" => "RESERVED_3",
639             "type_name" => "RESERVED",
640             "type_value" => 52,
641             "value" => 55
642             },
643              
644             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
645             {
646             "masked" => 1,
647             "masked_val" => 4,
648             "name" => "RESERVED_4",
649             "type_name" => "RESERVED",
650             "type_value" => 52,
651             "value" => 56
652             },
653              
654             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
655             {
656             "comment" => "undef (PL_sv_undef) - \"the\" Perl undef (see notes)",
657             "name" => "CANONICAL_UNDEF",
658             "type_name" => "CANONICAL_UNDEF",
659             "type_value" => 57,
660             "value" => 57
661             },
662              
663             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
664             {
665             "comment" => "false (PL_sv_no)",
666             "name" => "FALSE",
667             "type_name" => "FALSE",
668             "type_value" => 58,
669             "value" => 58
670             },
671              
672             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
673             {
674             "comment" => "true (PL_sv_yes)",
675             "name" => "TRUE",
676             "type_name" => "TRUE",
677             "type_value" => 59,
678             "value" => 59
679             },
680              
681             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
682             {
683             "comment" =>
684             " - repeated tag (not done yet, will be implemented in version 3)",
685             "name" => "MANY",
686             "type_name" => "MANY",
687             "type_value" => 60,
688             "value" => 60
689             },
690              
691             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
692             {
693             "comment" => "(first byte of magic string in header)",
694             "name" => "PACKET_START",
695             "type_name" => "PACKET_START",
696             "type_value" => 61,
697             "value" => 61
698             },
699              
700             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
701             {
702             "comment" => " - for additional tags",
703             "name" => "EXTEND",
704             "type_name" => "EXTEND",
705             "type_value" => 62,
706             "value" => 62
707             },
708              
709             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
710             {
711             "comment" => "(ignored tag, skip to next byte)",
712             "name" => "PAD",
713             "type_name" => "PAD",
714             "type_value" => 63,
715             "value" => 63
716             },
717              
718             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
719             {
720             "comment" => "[ ...] - count of items in low 4 bits (ARRAY must be refcnt=1)",
721             "masked" => 1,
722             "masked_val" => 0,
723             "name" => "ARRAYREF_0",
724             "type_name" => "ARRAYREF",
725             "type_value" => 64,
726             "value" => 64
727             },
728              
729             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
730             {
731             "masked" => 1,
732             "masked_val" => 1,
733             "name" => "ARRAYREF_1",
734             "type_name" => "ARRAYREF",
735             "type_value" => 64,
736             "value" => 65
737             },
738              
739             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
740             {
741             "masked" => 1,
742             "masked_val" => 2,
743             "name" => "ARRAYREF_2",
744             "type_name" => "ARRAYREF",
745             "type_value" => 64,
746             "value" => 66
747             },
748              
749             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
750             {
751             "masked" => 1,
752             "masked_val" => 3,
753             "name" => "ARRAYREF_3",
754             "type_name" => "ARRAYREF",
755             "type_value" => 64,
756             "value" => 67
757             },
758              
759             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
760             {
761             "masked" => 1,
762             "masked_val" => 4,
763             "name" => "ARRAYREF_4",
764             "type_name" => "ARRAYREF",
765             "type_value" => 64,
766             "value" => 68
767             },
768              
769             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
770             {
771             "masked" => 1,
772             "masked_val" => 5,
773             "name" => "ARRAYREF_5",
774             "type_name" => "ARRAYREF",
775             "type_value" => 64,
776             "value" => 69
777             },
778              
779             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
780             {
781             "masked" => 1,
782             "masked_val" => 6,
783             "name" => "ARRAYREF_6",
784             "type_name" => "ARRAYREF",
785             "type_value" => 64,
786             "value" => 70
787             },
788              
789             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
790             {
791             "masked" => 1,
792             "masked_val" => 7,
793             "name" => "ARRAYREF_7",
794             "type_name" => "ARRAYREF",
795             "type_value" => 64,
796             "value" => 71
797             },
798              
799             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
800             {
801             "masked" => 1,
802             "masked_val" => 8,
803             "name" => "ARRAYREF_8",
804             "type_name" => "ARRAYREF",
805             "type_value" => 64,
806             "value" => 72
807             },
808              
809             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
810             {
811             "masked" => 1,
812             "masked_val" => 9,
813             "name" => "ARRAYREF_9",
814             "type_name" => "ARRAYREF",
815             "type_value" => 64,
816             "value" => 73
817             },
818              
819             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
820             {
821             "masked" => 1,
822             "masked_val" => 10,
823             "name" => "ARRAYREF_10",
824             "type_name" => "ARRAYREF",
825             "type_value" => 64,
826             "value" => 74
827             },
828              
829             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
830             {
831             "masked" => 1,
832             "masked_val" => 11,
833             "name" => "ARRAYREF_11",
834             "type_name" => "ARRAYREF",
835             "type_value" => 64,
836             "value" => 75
837             },
838              
839             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
840             {
841             "masked" => 1,
842             "masked_val" => 12,
843             "name" => "ARRAYREF_12",
844             "type_name" => "ARRAYREF",
845             "type_value" => 64,
846             "value" => 76
847             },
848              
849             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
850             {
851             "masked" => 1,
852             "masked_val" => 13,
853             "name" => "ARRAYREF_13",
854             "type_name" => "ARRAYREF",
855             "type_value" => 64,
856             "value" => 77
857             },
858              
859             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
860             {
861             "masked" => 1,
862             "masked_val" => 14,
863             "name" => "ARRAYREF_14",
864             "type_name" => "ARRAYREF",
865             "type_value" => 64,
866             "value" => 78
867             },
868              
869             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
870             {
871             "masked" => 1,
872             "masked_val" => 15,
873             "name" => "ARRAYREF_15",
874             "type_name" => "ARRAYREF",
875             "type_value" => 64,
876             "value" => 79
877             },
878              
879             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
880             {
881             "comment" =>
882             "[ ...] - count in low 4 bits, key/value pairs (HASH must be refcnt=1)",
883             "masked" => 1,
884             "masked_val" => 0,
885             "name" => "HASHREF_0",
886             "type_name" => "HASHREF",
887             "type_value" => 80,
888             "value" => 80
889             },
890              
891             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
892             {
893             "masked" => 1,
894             "masked_val" => 1,
895             "name" => "HASHREF_1",
896             "type_name" => "HASHREF",
897             "type_value" => 80,
898             "value" => 81
899             },
900              
901             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
902             {
903             "masked" => 1,
904             "masked_val" => 2,
905             "name" => "HASHREF_2",
906             "type_name" => "HASHREF",
907             "type_value" => 80,
908             "value" => 82
909             },
910              
911             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
912             {
913             "masked" => 1,
914             "masked_val" => 3,
915             "name" => "HASHREF_3",
916             "type_name" => "HASHREF",
917             "type_value" => 80,
918             "value" => 83
919             },
920              
921             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
922             {
923             "masked" => 1,
924             "masked_val" => 4,
925             "name" => "HASHREF_4",
926             "type_name" => "HASHREF",
927             "type_value" => 80,
928             "value" => 84
929             },
930              
931             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
932             {
933             "masked" => 1,
934             "masked_val" => 5,
935             "name" => "HASHREF_5",
936             "type_name" => "HASHREF",
937             "type_value" => 80,
938             "value" => 85
939             },
940              
941             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
942             {
943             "masked" => 1,
944             "masked_val" => 6,
945             "name" => "HASHREF_6",
946             "type_name" => "HASHREF",
947             "type_value" => 80,
948             "value" => 86
949             },
950              
951             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
952             {
953             "masked" => 1,
954             "masked_val" => 7,
955             "name" => "HASHREF_7",
956             "type_name" => "HASHREF",
957             "type_value" => 80,
958             "value" => 87
959             },
960              
961             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
962             {
963             "masked" => 1,
964             "masked_val" => 8,
965             "name" => "HASHREF_8",
966             "type_name" => "HASHREF",
967             "type_value" => 80,
968             "value" => 88
969             },
970              
971             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
972             {
973             "masked" => 1,
974             "masked_val" => 9,
975             "name" => "HASHREF_9",
976             "type_name" => "HASHREF",
977             "type_value" => 80,
978             "value" => 89
979             },
980              
981             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
982             {
983             "masked" => 1,
984             "masked_val" => 10,
985             "name" => "HASHREF_10",
986             "type_name" => "HASHREF",
987             "type_value" => 80,
988             "value" => 90
989             },
990              
991             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
992             {
993             "masked" => 1,
994             "masked_val" => 11,
995             "name" => "HASHREF_11",
996             "type_name" => "HASHREF",
997             "type_value" => 80,
998             "value" => 91
999             },
1000              
1001             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1002             {
1003             "masked" => 1,
1004             "masked_val" => 12,
1005             "name" => "HASHREF_12",
1006             "type_name" => "HASHREF",
1007             "type_value" => 80,
1008             "value" => 92
1009             },
1010              
1011             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1012             {
1013             "masked" => 1,
1014             "masked_val" => 13,
1015             "name" => "HASHREF_13",
1016             "type_name" => "HASHREF",
1017             "type_value" => 80,
1018             "value" => 93
1019             },
1020              
1021             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1022             {
1023             "masked" => 1,
1024             "masked_val" => 14,
1025             "name" => "HASHREF_14",
1026             "type_name" => "HASHREF",
1027             "type_value" => 80,
1028             "value" => 94
1029             },
1030              
1031             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1032             {
1033             "masked" => 1,
1034             "masked_val" => 15,
1035             "name" => "HASHREF_15",
1036             "type_name" => "HASHREF",
1037             "type_value" => 80,
1038             "value" => 95
1039             },
1040              
1041             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1042             {
1043             "comment" => " - binary/latin1 string, length encoded in low 5 bits of tag",
1044             "masked" => 1,
1045             "masked_val" => 0,
1046             "name" => "SHORT_BINARY_0",
1047             "type_name" => "SHORT_BINARY",
1048             "type_value" => 96,
1049             "value" => 96
1050             },
1051              
1052             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1053             {
1054             "masked" => 1,
1055             "masked_val" => 1,
1056             "name" => "SHORT_BINARY_1",
1057             "type_name" => "SHORT_BINARY",
1058             "type_value" => 96,
1059             "value" => 97
1060             },
1061              
1062             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1063             {
1064             "masked" => 1,
1065             "masked_val" => 2,
1066             "name" => "SHORT_BINARY_2",
1067             "type_name" => "SHORT_BINARY",
1068             "type_value" => 96,
1069             "value" => 98
1070             },
1071              
1072             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1073             {
1074             "masked" => 1,
1075             "masked_val" => 3,
1076             "name" => "SHORT_BINARY_3",
1077             "type_name" => "SHORT_BINARY",
1078             "type_value" => 96,
1079             "value" => 99
1080             },
1081              
1082             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1083             {
1084             "masked" => 1,
1085             "masked_val" => 4,
1086             "name" => "SHORT_BINARY_4",
1087             "type_name" => "SHORT_BINARY",
1088             "type_value" => 96,
1089             "value" => 100
1090             },
1091              
1092             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1093             {
1094             "masked" => 1,
1095             "masked_val" => 5,
1096             "name" => "SHORT_BINARY_5",
1097             "type_name" => "SHORT_BINARY",
1098             "type_value" => 96,
1099             "value" => 101
1100             },
1101              
1102             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1103             {
1104             "masked" => 1,
1105             "masked_val" => 6,
1106             "name" => "SHORT_BINARY_6",
1107             "type_name" => "SHORT_BINARY",
1108             "type_value" => 96,
1109             "value" => 102
1110             },
1111              
1112             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1113             {
1114             "masked" => 1,
1115             "masked_val" => 7,
1116             "name" => "SHORT_BINARY_7",
1117             "type_name" => "SHORT_BINARY",
1118             "type_value" => 96,
1119             "value" => 103
1120             },
1121              
1122             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1123             {
1124             "masked" => 1,
1125             "masked_val" => 8,
1126             "name" => "SHORT_BINARY_8",
1127             "type_name" => "SHORT_BINARY",
1128             "type_value" => 96,
1129             "value" => 104
1130             },
1131              
1132             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1133             {
1134             "masked" => 1,
1135             "masked_val" => 9,
1136             "name" => "SHORT_BINARY_9",
1137             "type_name" => "SHORT_BINARY",
1138             "type_value" => 96,
1139             "value" => 105
1140             },
1141              
1142             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1143             {
1144             "masked" => 1,
1145             "masked_val" => 10,
1146             "name" => "SHORT_BINARY_10",
1147             "type_name" => "SHORT_BINARY",
1148             "type_value" => 96,
1149             "value" => 106
1150             },
1151              
1152             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1153             {
1154             "masked" => 1,
1155             "masked_val" => 11,
1156             "name" => "SHORT_BINARY_11",
1157             "type_name" => "SHORT_BINARY",
1158             "type_value" => 96,
1159             "value" => 107
1160             },
1161              
1162             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1163             {
1164             "masked" => 1,
1165             "masked_val" => 12,
1166             "name" => "SHORT_BINARY_12",
1167             "type_name" => "SHORT_BINARY",
1168             "type_value" => 96,
1169             "value" => 108
1170             },
1171              
1172             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1173             {
1174             "masked" => 1,
1175             "masked_val" => 13,
1176             "name" => "SHORT_BINARY_13",
1177             "type_name" => "SHORT_BINARY",
1178             "type_value" => 96,
1179             "value" => 109
1180             },
1181              
1182             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1183             {
1184             "masked" => 1,
1185             "masked_val" => 14,
1186             "name" => "SHORT_BINARY_14",
1187             "type_name" => "SHORT_BINARY",
1188             "type_value" => 96,
1189             "value" => 110
1190             },
1191              
1192             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1193             {
1194             "masked" => 1,
1195             "masked_val" => 15,
1196             "name" => "SHORT_BINARY_15",
1197             "type_name" => "SHORT_BINARY",
1198             "type_value" => 96,
1199             "value" => 111
1200             },
1201              
1202             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1203             {
1204             "masked" => 1,
1205             "masked_val" => 16,
1206             "name" => "SHORT_BINARY_16",
1207             "type_name" => "SHORT_BINARY",
1208             "type_value" => 96,
1209             "value" => 112
1210             },
1211              
1212             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1213             {
1214             "masked" => 1,
1215             "masked_val" => 17,
1216             "name" => "SHORT_BINARY_17",
1217             "type_name" => "SHORT_BINARY",
1218             "type_value" => 96,
1219             "value" => 113
1220             },
1221              
1222             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1223             {
1224             "masked" => 1,
1225             "masked_val" => 18,
1226             "name" => "SHORT_BINARY_18",
1227             "type_name" => "SHORT_BINARY",
1228             "type_value" => 96,
1229             "value" => 114
1230             },
1231              
1232             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1233             {
1234             "masked" => 1,
1235             "masked_val" => 19,
1236             "name" => "SHORT_BINARY_19",
1237             "type_name" => "SHORT_BINARY",
1238             "type_value" => 96,
1239             "value" => 115
1240             },
1241              
1242             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1243             {
1244             "masked" => 1,
1245             "masked_val" => 20,
1246             "name" => "SHORT_BINARY_20",
1247             "type_name" => "SHORT_BINARY",
1248             "type_value" => 96,
1249             "value" => 116
1250             },
1251              
1252             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1253             {
1254             "masked" => 1,
1255             "masked_val" => 21,
1256             "name" => "SHORT_BINARY_21",
1257             "type_name" => "SHORT_BINARY",
1258             "type_value" => 96,
1259             "value" => 117
1260             },
1261              
1262             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1263             {
1264             "masked" => 1,
1265             "masked_val" => 22,
1266             "name" => "SHORT_BINARY_22",
1267             "type_name" => "SHORT_BINARY",
1268             "type_value" => 96,
1269             "value" => 118
1270             },
1271              
1272             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1273             {
1274             "masked" => 1,
1275             "masked_val" => 23,
1276             "name" => "SHORT_BINARY_23",
1277             "type_name" => "SHORT_BINARY",
1278             "type_value" => 96,
1279             "value" => 119
1280             },
1281              
1282             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1283             {
1284             "masked" => 1,
1285             "masked_val" => 24,
1286             "name" => "SHORT_BINARY_24",
1287             "type_name" => "SHORT_BINARY",
1288             "type_value" => 96,
1289             "value" => 120
1290             },
1291              
1292             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1293             {
1294             "masked" => 1,
1295             "masked_val" => 25,
1296             "name" => "SHORT_BINARY_25",
1297             "type_name" => "SHORT_BINARY",
1298             "type_value" => 96,
1299             "value" => 121
1300             },
1301              
1302             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1303             {
1304             "masked" => 1,
1305             "masked_val" => 26,
1306             "name" => "SHORT_BINARY_26",
1307             "type_name" => "SHORT_BINARY",
1308             "type_value" => 96,
1309             "value" => 122
1310             },
1311              
1312             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1313             {
1314             "masked" => 1,
1315             "masked_val" => 27,
1316             "name" => "SHORT_BINARY_27",
1317             "type_name" => "SHORT_BINARY",
1318             "type_value" => 96,
1319             "value" => 123
1320             },
1321              
1322             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1323             {
1324             "masked" => 1,
1325             "masked_val" => 28,
1326             "name" => "SHORT_BINARY_28",
1327             "type_name" => "SHORT_BINARY",
1328             "type_value" => 96,
1329             "value" => 124
1330             },
1331              
1332             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1333             {
1334             "masked" => 1,
1335             "masked_val" => 29,
1336             "name" => "SHORT_BINARY_29",
1337             "type_name" => "SHORT_BINARY",
1338             "type_value" => 96,
1339             "value" => 125
1340             },
1341              
1342             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1343             {
1344             "masked" => 1,
1345             "masked_val" => 30,
1346             "name" => "SHORT_BINARY_30",
1347             "type_name" => "SHORT_BINARY",
1348             "type_value" => 96,
1349             "value" => 126
1350             },
1351              
1352             # autoupdated by Sereal.git:Perl/shared/author_tools/update_from_header.pl do not modify directly!
1353             {
1354             "masked" => 1,
1355             "masked_val" => 31,
1356             "name" => "SHORT_BINARY_31",
1357             "type_name" => "SHORT_BINARY",
1358             "type_value" => 96,
1359             "value" => 127
1360             } );
1361              
1362             $TAG_INFO_HASH{ chr $_ }= $TAG_INFO_ARRAY[$_] for 0 .. 127;
1363             push @EXPORT_OK, qw(%TAG_INFO_HASH @TAG_INFO_ARRAY);
1364              
1365             # stop autoupdated section - do not modify directly!
1366              
1367             1;