File Coverage

blib/lib/Iterator/Flex/Role/State/Registry.pm
Criterion Covered Total %
statement 29 29 100.0
branch 1 2 50.0
condition 2 2 100.0
subroutine 9 9 100.0
pod 2 2 100.0
total 43 44 97.7


line stmt bran cond sub pod time code
1             package Iterator::Flex::Role::State::Registry;
2              
3             # ABSTRACT: Iterator State is kept in the registry
4              
5 22     22   189027 use v5.28;
  22         63  
6 22     22   84 use strict;
  22         32  
  22         443  
7 22     22   67 use warnings;
  22         28  
  22         1327  
8              
9             our $VERSION = '0.34';
10              
11 22     22   464 use Iterator::Flex::Utils qw( :default REG_ITERATOR REG_ITER_STATE :IterStates );
  22         37  
  22         3037  
12              
13 22     22   527 use Role::Tiny;
  22         4818  
  22         144  
14 22     22   5295 use experimental 'signatures';
  22         32  
  22         126  
15              
16 22     22   3221 use namespace::clean;
  22         12468  
  22         119  
17              
18              
19              
20              
21              
22              
23              
24              
25              
26 269     269 1 308 sub set_state ( $self, $state ) {
  269         287  
  269         282  
  269         267  
27             $REGISTRY{ refaddr $self }[REG_ITERATOR][REG_ITER_STATE] = $state
28 269 50 100     1145 unless ( $REGISTRY{ refaddr $self }[REG_ITERATOR][REG_ITER_STATE] // IterState_CLEAR )
29             == IterState_ERROR;
30             }
31              
32              
33              
34              
35              
36              
37              
38              
39              
40 80     80 1 89 sub get_state ( $self ) {
  80         88  
  80         81  
41 80         333 $REGISTRY{ refaddr $self }[REG_ITERATOR][REG_ITER_STATE];
42             }
43              
44             with 'Iterator::Flex::Role::State';
45              
46             1;
47              
48             #
49             # This file is part of Iterator-Flex
50             #
51             # This software is Copyright (c) 2018 by Smithsonian Astrophysical Observatory.
52             #
53             # This is free software, licensed under:
54             #
55             # The GNU General Public License, Version 3, June 2007
56             #
57              
58             __END__