File Coverage

blib/lib/Data/Focus/Applicative/Const.pm
Criterion Covered Total %
statement 18 20 90.0
branch n/a
condition n/a
subroutine 7 9 77.7
pod 6 6 100.0
total 31 35 88.5


line stmt bran cond sub pod time code
1             package Data::Focus::Applicative::Const;
2 20     20   14726 use strict;
  20         36  
  20         691  
3 20     20   84 use warnings;
  20         27  
  20         500  
4 20     20   77 use parent qw(Data::Focus::Applicative);
  20         29  
  20         126  
5              
6             sub new {
7 2425     2425 1 3291 my ($class, $datum) = @_;
8 2425         9529 return bless \$datum, $class;
9             }
10              
11             sub pure {
12 98     98 1 12166 my ($class) = @_; ## ignore the datum
13 98         255 return $class->new($class->mempty);
14             }
15              
16             sub build {
17 967     967 1 3362 my ($class, $builder, @f_parts) = @_;
18 967         1356 return $class->new($class->mconcat(map { $_->get_const } @f_parts));
  1424         1820  
19             }
20              
21             sub get_const {
22 2417     2417 1 1719 return ${$_[0]};
  2417         5030  
23             }
24              
25 0     0 1   sub mempty { die "not implemented" }
26 0     0 1   sub mconcat { die "not implemented" }
27              
28             1;
29             __END__