File Coverage

blib/lib/Result/Err.pm
Criterion Covered Total %
statement 32 33 96.9
branch 10 14 71.4
condition n/a
subroutine 12 13 92.3
pod 0 5 0.0
total 54 65 83.0


line stmt bran cond sub pod time code
1 10     10   230650 use 5.014;
  10         42  
2 10     10   61 use strict;
  10         19  
  10         210  
3 10     10   90 use warnings;
  10         21  
  10         304  
4              
5 10     10   3512 use Result::Trait ();
  10         34  
  10         497  
6              
7             package Result::Err;
8              
9             our $AUTHORITY = 'cpan:TOBYINK';
10             our $VERSION = '0.005';
11              
12 10     10   3996 use Role::Tiny::With;
  10         2404  
  10         3838  
13             with 'Result::Trait';
14              
15             'overload'->import( 'Result::Trait'->__OVERLOAD_ARGS__( 'err', '_peek_err' ) );
16              
17             sub new {
18 54     54 0 121807 my $class = shift;
19              
20 54         278 bless [ !!0, [ @_ ] ], $class;
21             }
22              
23             sub _handled {
24 72 100   72   480 @_ == 1
25             ? $_[0][0]
26             : ( $_[0][0] = $_[1] );
27             }
28              
29             sub _peek {
30 0     0   0 die;
31             }
32              
33             sub _peek_err {
34 15     15   34 my ( $self ) = @_;
35             wantarray
36 15 100       59 ? @{ $self->[1] }
  3         100  
37             : $self->[1][-1];
38             }
39              
40             sub is_err {
41 19 50   19 0 60 @_ == 1
42             or Carp::croak( 'Usage: $result->is_err()' );
43              
44 19         69 !!1;
45             }
46              
47             sub is_ok {
48 10 50   10 0 35 @_ == 1
49             or Carp::croak('Usage: $result->is_ok()');
50              
51 10         33 !!0;
52             }
53              
54             sub unwrap {
55 4     4 0 1481 my ( $self ) = @_;
56 4 50       16 @_ == 1
57             or Carp::croak( 'Usage: $result->unwrap()' );
58              
59 4         13 Carp::croak( $self->unwrap_err() );
60             }
61              
62             sub unwrap_err {
63 51     51 0 944 my ( $self ) = @_;
64 51 50       127 @_ == 1
65             or Carp::croak( 'Usage: $result->unwrap_err()' );
66              
67 51         279 $self->[0] = !!1;
68              
69             wantarray
70 51 100       274 ? @{ $self->[1] }
  14         487  
71             : $self->[1][-1];
72             }
73              
74             1;
75              
76             __END__