File Coverage

blib/lib/Iterator/Flex/Role/Rewind/Closure.pm
Criterion Covered Total %
statement 30 30 100.0
branch n/a
condition n/a
subroutine 9 9 100.0
pod 1 1 100.0
total 40 40 100.0


line stmt bran cond sub pod time code
1             package Iterator::Flex::Role::Rewind::Closure;
2              
3             # ABSTRACT: Implement rewind as a closure stored in the registry
4              
5 41     41   342913 use v5.28;
  41         224  
6 41     41   254 use strict;
  41         78  
  41         1200  
7 41     41   206 use warnings;
  41         100  
  41         2960  
8              
9             our $VERSION = '0.33';
10              
11 41     41   657 use Iterator::Flex::Base ();
  41         78  
  41         1230  
12 41     41   183 use Iterator::Flex::Utils qw( :default REG_ITERATOR REG_ITER_REWIND );
  41         76  
  41         6713  
13 41     41   277 use Role::Tiny;
  41         81  
  41         313  
14 41     41   11623 use experimental 'signatures';
  41         81  
  41         367  
15              
16 41     41   9303 use namespace::clean;
  41         254  
  41         325  
17              
18              
19              
20              
21              
22              
23              
24              
25              
26              
27              
28 89     89 1 40352 sub rewind ( $self ) {
  89         160  
  89         133  
29              
30 89         552 $self->_apply_method_to_depends( 'rewind' );
31              
32 89         412 $REGISTRY{ refaddr $self }[REG_ITERATOR][REG_ITER_REWIND]->( $self );
33 89         319 $self->_clear_state;
34              
35 89         251 return;
36             }
37             *__rewind__ = \&rewind;
38              
39              
40             requires '_clear_state';
41              
42             1;
43              
44             #
45             # This file is part of Iterator-Flex
46             #
47             # This software is Copyright (c) 2018 by Smithsonian Astrophysical Observatory.
48             #
49             # This is free software, licensed under:
50             #
51             # The GNU General Public License, Version 3, June 2007
52             #
53              
54             __END__