File Coverage

blib/lib/Time/Nanos.pm
Criterion Covered Total %
statement 20 20 100.0
branch 4 4 100.0
condition 4 4 100.0
subroutine 6 6 100.0
pod 3 3 100.0
total 37 37 100.0


line stmt bran cond sub pod time code
1             package Time::Nanos;
2              
3 1     1   120473 use strict;
  1         3  
  1         40  
4 1     1   9 use warnings;
  1         1  
  1         63  
5 1     1   7 use Exporter 'import';
  1         2  
  1         332  
6              
7             our $VERSION = 'v0.1.4';
8             our @EXPORT = qw(nanos micros millis);
9             our $CLOCK = 'realtime';
10              
11             require XSLoader;
12             XSLoader::load('Time::Nanos', $VERSION);
13              
14 14     14 1 172578 sub nanos { hrtime(@_) }
15              
16             sub micros {
17 3   100 3 1 3880 my $ret_array = $_[0] // 0;
18              
19 3 100       11 if ($ret_array) {
20 1         4 my ($sec, $nsec) = nanos(1);
21 1         6 return ($sec, int($nsec / 1000));
22             }
23              
24 2         5 return int(nanos() / 1000);
25             }
26              
27             sub millis {
28 3   100 3 1 2840 my $ret_array = $_[0] // 0;
29              
30 3 100       9 if ($ret_array) {
31 1         8 my ($sec, $nsec) = nanos(1);
32 1         6 return ($sec, int($nsec / 1_000_000));
33             }
34 2         3 return int(nanos() / 1_000_000);
35             }
36              
37             1;
38              
39             __END__