File Coverage

blib/lib/CBOR/Free/Decoder/Base.pm
Criterion Covered Total %
statement 14 14 100.0
branch 6 6 100.0
condition 3 3 100.0
subroutine 3 3 100.0
pod 0 1 0.0
total 26 27 96.3


line stmt bran cond sub pod time code
1             package CBOR::Free::Decoder::Base;
2              
3 7     7   2434 use strict;
  7         14  
  7         172  
4 7     7   30 use warnings;
  7         15  
  7         1141  
5              
6             sub set_tag_handlers {
7 106     106 0 70209 my ($self, @tag_kv) = @_;
8              
9 106 100       272 die "Uneven tag handlers list given!" if @tag_kv % 2;
10              
11 105         178 my @tag_kv_copy = @tag_kv;
12              
13 105         263 while ( my ($tag, $cr) = splice @tag_kv ) {
14 105 100       611 die "Invalid tag: $tag" if $tag !~ m<\A[0-9]+\z>;
15 104 100 100     588 die "Invalid tag $tag handler: $cr" if defined($cr) && !UNIVERSAL::isa($cr, 'CODE');
16             }
17              
18 103         369 $self->_set_tag_handlers_backend(@tag_kv_copy);
19              
20 103         193 return $self;
21             }
22              
23             1;