File Coverage

blib/lib/TOON/Error.pm
Criterion Covered Total %
statement 17 33 51.5
branch n/a
condition 4 8 50.0
subroutine 5 9 55.5
pod 6 6 100.0
total 32 56 57.1


line stmt bran cond sub pod time code
1             package TOON::Error;
2              
3 6     6   81 use v5.40;
  6         27  
4 6     6   61 use feature 'signatures';
  6         18  
  6         866  
5 6     6   3025 use overload '""' => 'as_string', fallback => 1;
  6         8444  
  6         48  
6              
7             our $VERSION = '0.1.0';
8              
9 1     1 1 1 sub new ($class, %args) {
  1         2  
  1         4  
  1         7  
10             return bless {
11             message => $args{message} // 'Unknown TOON error',
12             line => $args{line} // 1,
13             column => $args{column} // 1,
14 1   50     21 offset => $args{offset} // 0,
      50        
      50        
      50        
15             }, $class;
16             }
17              
18 0     0 1 0 sub message ($self) { return $self->{message} }
  0         0  
  0         0  
  0         0  
19 0     0 1 0 sub line ($self) { return $self->{line} }
  0         0  
  0         0  
  0         0  
20 0     0 1 0 sub column ($self) { return $self->{column} }
  0         0  
  0         0  
  0         0  
21 0     0 1 0 sub offset ($self) { return $self->{offset} }
  0         0  
  0         0  
  0         0  
22              
23 1     1 1 475 sub as_string ($self, @) {
  1         2  
  1         1  
24             return sprintf '%s at line %d, column %d',
25 1         11 $self->{message}, $self->{line}, $self->{column};
26             }
27              
28             1;
29              
30             __END__