File Coverage

blib/lib/Iterator/Flex/Role/Reset/Closure.pm
Criterion Covered Total %
statement 36 36 100.0
branch n/a
condition n/a
subroutine 11 11 100.0
pod 1 1 100.0
total 48 48 100.0


line stmt bran cond sub pod time code
1             package Iterator::Flex::Role::Reset::Closure;
2              
3             # ABSTRACT: Implement reset as a closure stored in the registry
4              
5 40     40   266536 use v5.28;
  40         233  
6 40     40   219 use strict;
  40         87  
  40         1068  
7 40     40   184 use warnings;
  40         124  
  40         2829  
8              
9             our $VERSION = '0.33';
10              
11 40     40   253 use Scalar::Util;
  40         81  
  40         1868  
12 40     40   232 use List::Util;
  40         79  
  40         2569  
13              
14 40     40   707 use Iterator::Flex::Base ();
  40         87  
  40         1282  
15 40     40   196 use Iterator::Flex::Utils qw( :default REG_ITERATOR REG_ITER_RESET );
  40         98  
  40         5719  
16 40     40   278 use Role::Tiny;
  40         76  
  40         319  
17 40     40   11874 use experimental 'signatures';
  40         91  
  40         358  
18              
19 40     40   6524 use namespace::clean;
  40         128  
  40         303  
20              
21              
22              
23              
24              
25              
26              
27              
28              
29              
30              
31 109     109 1 89757 sub reset ( $self ) { ## no critic (BuiltinHomonyms)
  109         184  
  109         169  
32 109         601 $self->_apply_method_to_depends( 'reset' );
33              
34 108         533 $REGISTRY{ refaddr $self }[REG_ITERATOR][REG_ITER_RESET]->( $self );
35 108         345 $self->_clear_state;
36              
37 108         280 return;
38             }
39             *__reset__ = \&reset;
40              
41              
42             requires '_clear_state';
43             1;
44              
45             #
46             # This file is part of Iterator-Flex
47             #
48             # This software is Copyright (c) 2018 by Smithsonian Astrophysical Observatory.
49             #
50             # This is free software, licensed under:
51             #
52             # The GNU General Public License, Version 3, June 2007
53             #
54              
55             __END__