File Coverage

blib/lib/Switch/Plain.pm
Criterion Covered Total %
statement 22 26 84.6
branch 1 2 50.0
condition 0 3 0.0
subroutine 8 10 80.0
pod n/a
total 31 41 75.6


line stmt bran cond sub pod time code
1             package Switch::Plain;
2              
3 4     4   52003 use v5.14.0;
  4         8  
4 4     4   11 use warnings;
  4         4  
  4         94  
5              
6 4     4   9 use Carp qw(croak);
  4         7  
  4         198  
7              
8 4     4   13 use XSLoader;
  4         3  
  4         124  
9             BEGIN {
10 4     4   5 our $VERSION = '0.05';
11 4         2071 XSLoader::load;
12             }
13              
14             my %export = (
15             sswitch => FLAG_SSWITCH,
16             nswitch => FLAG_NSWITCH,
17             );
18              
19             sub _port {
20 4     4   5 my $op = shift;
21              
22 4         5 my $class = shift;
23              
24 4         3 my @todo;
25 4         7 for my $item (@_) {
26 0   0     0 push @todo, $export{$item} || croak qq{"$item" is not exported by the $class module};
27             }
28 4 50       16 for my $item (@todo ? @todo : values %export) {
29 8         19 $op->(\$^H{+HINTK_FLAGS}, $item);
30             }
31             }
32              
33             sub import {
34 8     8   5 _port sub { ${$_[0]} |= $_[1]; }, @_;
  8     4   3639  
  4         29  
35             }
36              
37             sub unimport {
38 0     0     _port sub { ${$_[0]} &= ~$_[1]; }, @_;
  0     0      
  0            
39             }
40              
41             'ok'
42             __END__