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   305088 use v5.28;
  22         86  
6 22     22   117 use strict;
  22         40  
  22         4851  
7 22     22   122 use warnings;
  22         41  
  22         1893  
8              
9             our $VERSION = '0.33';
10              
11 22     22   587 use Iterator::Flex::Utils qw( :default REG_ITERATOR REG_ITER_STATE :IterStates );
  22         92  
  22         4333  
12              
13 22     22   658 use Role::Tiny;
  22         4979  
  22         219  
14 22     22   7173 use experimental 'signatures';
  22         52  
  22         168  
15              
16 22     22   4456 use namespace::clean;
  22         12772  
  22         209  
17              
18              
19              
20              
21              
22              
23              
24              
25              
26 265     265 1 423 sub set_state ( $self, $state ) {
  265         406  
  265         398  
  265         369  
27             $REGISTRY{ refaddr $self }[REG_ITERATOR][REG_ITER_STATE] = $state
28 265 50 100     1680 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 124 sub get_state ( $self ) {
  80         109  
  80         131  
41 80         452 $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__