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   3151 use strict;
  7         19  
  7         211  
4 7     7   35 use warnings;
  7         13  
  7         1332  
5              
6             sub set_tag_handlers {
7 106     106 0 72805 my ($self, @tag_kv) = @_;
8              
9 106 100       327 die "Uneven tag handlers list given!" if @tag_kv % 2;
10              
11 105         206 my @tag_kv_copy = @tag_kv;
12              
13 105         312 while ( my ($tag, $cr) = splice @tag_kv ) {
14 105 100       628 die "Invalid tag: $tag" if $tag !~ m<\A[0-9]+\z>;
15 104 100 100     683 die "Invalid tag $tag handler: $cr" if defined($cr) && !UNIVERSAL::isa($cr, 'CODE');
16             }
17              
18 103         500 $self->_set_tag_handlers_backend(@tag_kv_copy);
19              
20 103         256 return $self;
21             }
22              
23             1;