File Coverage

blib/lib/Hydrogen/Curry/Number.pm
Criterion Covered Total %
statement 157 173 90.7
branch 51 102 50.0
condition 17 51 33.3
subroutine 42 58 72.4
pod 17 17 100.0
total 284 401 70.8


line stmt bran cond sub pod time code
1             # This file was autogenerated.
2 3     3   213951 use 5.008001;
  3         12  
3 3     3   14 use strict;
  3         24  
  3         69  
4 3     3   11 use warnings;
  3         5  
  3         166  
5 3     3   13 no warnings qw( void once );
  3         6  
  3         150  
6 3     3   336 use Hydrogen ();
  3         6  
  3         69  
7 3     3   385 use Hydrogen::Number ();
  3         4  
  3         254  
8              
9             package Hydrogen::Curry::Number;
10              
11             our $AUTHORITY = 'cpan:TOBYINK';
12             our $VERSION = '0.021001';
13              
14             =head1 NAME
15              
16             Hydrogen::Curry::Number - easily curry functions from Hydrogen::Number
17              
18             =head1 VERSION
19              
20             This documentation is for Hydrogen::Curry::Number 0.021001,
21             which is based on Sub::HandlesVia::HandlerLibrary::Number 0.050005.
22              
23             =cut
24              
25             =head1 FUNCTIONS
26              
27             Each function expects a numeric scalar as its only argument and returns a coderef.
28              
29             =cut
30              
31 3         24 use Exporter::Shiny qw(
32             curry_abs
33             curry_add
34             curry_ceil
35             curry_cmp
36             curry_div
37             curry_eq
38             curry_floor
39             curry_ge
40             curry_get
41             curry_gt
42             curry_le
43             curry_lt
44             curry_mod
45             curry_mul
46             curry_ne
47             curry_set
48             curry_sub
49 3     3   15 );
  3         5  
50              
51             =head2 C<< curry_abs( $number ) >>
52              
53             Curry the first argument of C<< Hydrogen::Number::abs >>.
54              
55             =cut
56              
57             sub curry_abs {
58 1 50   1 1 235977 @_ == 1
59             or Hydrogen::croak(
60             "Wrong number of parameters in signature for curry_abs: got %d, %s",
61             scalar(@_), "expected exactly 1 parameter"
62             );
63 3 50 33 3   356 (do { package Hydrogen::Number::__SANDBOX__; use Scalar::Util (); defined($_[0]) && !ref($_[0]) && Scalar::Util::looks_like_number($_[0]) })
  3 50       5  
  3         520  
  1         3  
  1         28  
64             or Hydrogen::croak(
65             "Type check failed in signature for curry_abs: %s should be %s",
66             "\\$_[0]", "Num"
67             );
68 1         5 my $ref = \$_[0];
69 1     0   7 return sub { Hydrogen::Number::abs( $$ref, @_ ) };
  0         0  
70             }
71              
72             =head2 C<< curry_add( $number ) >>
73              
74             Curry the first argument of C<< Hydrogen::Number::add >>.
75              
76             =cut
77              
78             sub curry_add {
79 1 50   1 1 7578 @_ == 1
80             or Hydrogen::croak(
81             "Wrong number of parameters in signature for curry_add: got %d, %s",
82             scalar(@_), "expected exactly 1 parameter"
83             );
84 3 50 33 3   24 (do { package Hydrogen::Number::__SANDBOX__; use Scalar::Util (); defined($_[0]) && !ref($_[0]) && Scalar::Util::looks_like_number($_[0]) })
  3 50       6  
  3         434  
  1         3  
  1         16  
85             or Hydrogen::croak(
86             "Type check failed in signature for curry_add: %s should be %s",
87             "\\$_[0]", "Num"
88             );
89 1         3 my $ref = \$_[0];
90 1     0   7 return sub { Hydrogen::Number::add( $$ref, @_ ) };
  0         0  
91             }
92              
93             =head2 C<< curry_ceil( $number ) >>
94              
95             Curry the first argument of C<< Hydrogen::Number::ceil >>.
96              
97             =cut
98              
99             sub curry_ceil {
100 1 50   1 1 5371 @_ == 1
101             or Hydrogen::croak(
102             "Wrong number of parameters in signature for curry_ceil: got %d, %s",
103             scalar(@_), "expected exactly 1 parameter"
104             );
105 3 50 33 3   15 (do { package Hydrogen::Number::__SANDBOX__; use Scalar::Util (); defined($_[0]) && !ref($_[0]) && Scalar::Util::looks_like_number($_[0]) })
  3 50       5  
  3         447  
  1         2  
  1         17  
106             or Hydrogen::croak(
107             "Type check failed in signature for curry_ceil: %s should be %s",
108             "\\$_[0]", "Num"
109             );
110 1         4 my $ref = \$_[0];
111 1     0   6 return sub { Hydrogen::Number::ceil( $$ref, @_ ) };
  0         0  
112             }
113              
114             =head2 C<< curry_cmp( $number ) >>
115              
116             Curry the first argument of C<< Hydrogen::Number::cmp >>.
117              
118             =cut
119              
120             sub curry_cmp {
121 1 50   1 1 3936 @_ == 1
122             or Hydrogen::croak(
123             "Wrong number of parameters in signature for curry_cmp: got %d, %s",
124             scalar(@_), "expected exactly 1 parameter"
125             );
126 3 50 33 3   17 (do { package Hydrogen::Number::__SANDBOX__; use Scalar::Util (); defined($_[0]) && !ref($_[0]) && Scalar::Util::looks_like_number($_[0]) })
  3 50       5  
  3         436  
  1         3  
  1         16  
127             or Hydrogen::croak(
128             "Type check failed in signature for curry_cmp: %s should be %s",
129             "\\$_[0]", "Num"
130             );
131 1         4 my $ref = \$_[0];
132 1     0   6 return sub { Hydrogen::Number::cmp( $$ref, @_ ) };
  0         0  
133             }
134              
135             =head2 C<< curry_div( $number ) >>
136              
137             Curry the first argument of C<< Hydrogen::Number::div >>.
138              
139             =cut
140              
141             sub curry_div {
142 1 50   1 1 5745 @_ == 1
143             or Hydrogen::croak(
144             "Wrong number of parameters in signature for curry_div: got %d, %s",
145             scalar(@_), "expected exactly 1 parameter"
146             );
147 3 50 33 3   16 (do { package Hydrogen::Number::__SANDBOX__; use Scalar::Util (); defined($_[0]) && !ref($_[0]) && Scalar::Util::looks_like_number($_[0]) })
  3 50       10  
  3         429  
  1         4  
  1         14  
148             or Hydrogen::croak(
149             "Type check failed in signature for curry_div: %s should be %s",
150             "\\$_[0]", "Num"
151             );
152 1         3 my $ref = \$_[0];
153 1     0   7 return sub { Hydrogen::Number::div( $$ref, @_ ) };
  0         0  
154             }
155              
156             =head2 C<< curry_eq( $number ) >>
157              
158             Curry the first argument of C<< Hydrogen::Number::eq >>.
159              
160             =cut
161              
162             sub curry_eq {
163 2 50   2 1 5234 @_ == 1
164             or Hydrogen::croak(
165             "Wrong number of parameters in signature for curry_eq: got %d, %s",
166             scalar(@_), "expected exactly 1 parameter"
167             );
168 3 50 33 3   17 (do { package Hydrogen::Number::__SANDBOX__; use Scalar::Util (); defined($_[0]) && !ref($_[0]) && Scalar::Util::looks_like_number($_[0]) })
  3 50       6  
  3         446  
  2         7  
  2         32  
169             or Hydrogen::croak(
170             "Type check failed in signature for curry_eq: %s should be %s",
171             "\\$_[0]", "Num"
172             );
173 2         6 my $ref = \$_[0];
174 2     1   47 return sub { Hydrogen::Number::eq( $$ref, @_ ) };
  1         6  
175             }
176              
177             =head2 C<< curry_floor( $number ) >>
178              
179             Curry the first argument of C<< Hydrogen::Number::floor >>.
180              
181             =cut
182              
183             sub curry_floor {
184 1 50   1 1 7358 @_ == 1
185             or Hydrogen::croak(
186             "Wrong number of parameters in signature for curry_floor: got %d, %s",
187             scalar(@_), "expected exactly 1 parameter"
188             );
189 3 50 33 3   21 (do { package Hydrogen::Number::__SANDBOX__; use Scalar::Util (); defined($_[0]) && !ref($_[0]) && Scalar::Util::looks_like_number($_[0]) })
  3 50       6  
  3         551  
  1         3  
  1         16  
190             or Hydrogen::croak(
191             "Type check failed in signature for curry_floor: %s should be %s",
192             "\\$_[0]", "Num"
193             );
194 1         4 my $ref = \$_[0];
195 1     0   5 return sub { Hydrogen::Number::floor( $$ref, @_ ) };
  0         0  
196             }
197              
198             =head2 C<< curry_ge( $number ) >>
199              
200             Curry the first argument of C<< Hydrogen::Number::ge >>.
201              
202             =cut
203              
204             sub curry_ge {
205 1 50   1 1 4394 @_ == 1
206             or Hydrogen::croak(
207             "Wrong number of parameters in signature for curry_ge: got %d, %s",
208             scalar(@_), "expected exactly 1 parameter"
209             );
210 3 50 33 3   21 (do { package Hydrogen::Number::__SANDBOX__; use Scalar::Util (); defined($_[0]) && !ref($_[0]) && Scalar::Util::looks_like_number($_[0]) })
  3 50       5  
  3         460  
  1         4  
  1         14  
211             or Hydrogen::croak(
212             "Type check failed in signature for curry_ge: %s should be %s",
213             "\\$_[0]", "Num"
214             );
215 1         3 my $ref = \$_[0];
216 1     0   6 return sub { Hydrogen::Number::ge( $$ref, @_ ) };
  0         0  
217             }
218              
219             =head2 C<< curry_get( $number ) >>
220              
221             Curry the first argument of C<< Hydrogen::Number::get >>.
222              
223             =cut
224              
225             sub curry_get {
226 1 50   1 1 6163 @_ == 1
227             or Hydrogen::croak(
228             "Wrong number of parameters in signature for curry_get: got %d, %s",
229             scalar(@_), "expected exactly 1 parameter"
230             );
231 3 50 33 3   18 (do { package Hydrogen::Number::__SANDBOX__; use Scalar::Util (); defined($_[0]) && !ref($_[0]) && Scalar::Util::looks_like_number($_[0]) })
  3 50       5  
  3         402  
  1         4  
  1         14  
232             or Hydrogen::croak(
233             "Type check failed in signature for curry_get: %s should be %s",
234             "\\$_[0]", "Num"
235             );
236 1         4 my $ref = \$_[0];
237 1     0   6 return sub { Hydrogen::Number::get( $$ref, @_ ) };
  0         0  
238             }
239              
240             =head2 C<< curry_gt( $number ) >>
241              
242             Curry the first argument of C<< Hydrogen::Number::gt >>.
243              
244             =cut
245              
246             sub curry_gt {
247 1 50   1 1 6558 @_ == 1
248             or Hydrogen::croak(
249             "Wrong number of parameters in signature for curry_gt: got %d, %s",
250             scalar(@_), "expected exactly 1 parameter"
251             );
252 3 50 33 3   17 (do { package Hydrogen::Number::__SANDBOX__; use Scalar::Util (); defined($_[0]) && !ref($_[0]) && Scalar::Util::looks_like_number($_[0]) })
  3 50       4  
  3         429  
  1         4  
  1         14  
253             or Hydrogen::croak(
254             "Type check failed in signature for curry_gt: %s should be %s",
255             "\\$_[0]", "Num"
256             );
257 1         4 my $ref = \$_[0];
258 1     0   6 return sub { Hydrogen::Number::gt( $$ref, @_ ) };
  0         0  
259             }
260              
261             =head2 C<< curry_le( $number ) >>
262              
263             Curry the first argument of C<< Hydrogen::Number::le >>.
264              
265             =cut
266              
267             sub curry_le {
268 1 50   1 1 4352 @_ == 1
269             or Hydrogen::croak(
270             "Wrong number of parameters in signature for curry_le: got %d, %s",
271             scalar(@_), "expected exactly 1 parameter"
272             );
273 3 50 33 3   17 (do { package Hydrogen::Number::__SANDBOX__; use Scalar::Util (); defined($_[0]) && !ref($_[0]) && Scalar::Util::looks_like_number($_[0]) })
  3 50       6  
  3         453  
  1         2  
  1         25  
274             or Hydrogen::croak(
275             "Type check failed in signature for curry_le: %s should be %s",
276             "\\$_[0]", "Num"
277             );
278 1         3 my $ref = \$_[0];
279 1     0   7 return sub { Hydrogen::Number::le( $$ref, @_ ) };
  0         0  
280             }
281              
282             =head2 C<< curry_lt( $number ) >>
283              
284             Curry the first argument of C<< Hydrogen::Number::lt >>.
285              
286             =cut
287              
288             sub curry_lt {
289 1 50   1 1 6757 @_ == 1
290             or Hydrogen::croak(
291             "Wrong number of parameters in signature for curry_lt: got %d, %s",
292             scalar(@_), "expected exactly 1 parameter"
293             );
294 3 50 33 3   18 (do { package Hydrogen::Number::__SANDBOX__; use Scalar::Util (); defined($_[0]) && !ref($_[0]) && Scalar::Util::looks_like_number($_[0]) })
  3 50       23  
  3         447  
  1         3  
  1         18  
295             or Hydrogen::croak(
296             "Type check failed in signature for curry_lt: %s should be %s",
297             "\\$_[0]", "Num"
298             );
299 1         4 my $ref = \$_[0];
300 1     0   6 return sub { Hydrogen::Number::lt( $$ref, @_ ) };
  0         0  
301             }
302              
303             =head2 C<< curry_mod( $number ) >>
304              
305             Curry the first argument of C<< Hydrogen::Number::mod >>.
306              
307             =cut
308              
309             sub curry_mod {
310 1 50   1 1 5175 @_ == 1
311             or Hydrogen::croak(
312             "Wrong number of parameters in signature for curry_mod: got %d, %s",
313             scalar(@_), "expected exactly 1 parameter"
314             );
315 3 50 33 3   17 (do { package Hydrogen::Number::__SANDBOX__; use Scalar::Util (); defined($_[0]) && !ref($_[0]) && Scalar::Util::looks_like_number($_[0]) })
  3 50       13  
  3         438  
  1         3  
  1         13  
316             or Hydrogen::croak(
317             "Type check failed in signature for curry_mod: %s should be %s",
318             "\\$_[0]", "Num"
319             );
320 1         4 my $ref = \$_[0];
321 1     0   6 return sub { Hydrogen::Number::mod( $$ref, @_ ) };
  0         0  
322             }
323              
324             =head2 C<< curry_mul( $number ) >>
325              
326             Curry the first argument of C<< Hydrogen::Number::mul >>.
327              
328             =cut
329              
330             sub curry_mul {
331 1 50   1 1 6692 @_ == 1
332             or Hydrogen::croak(
333             "Wrong number of parameters in signature for curry_mul: got %d, %s",
334             scalar(@_), "expected exactly 1 parameter"
335             );
336 3 50 33 3   18 (do { package Hydrogen::Number::__SANDBOX__; use Scalar::Util (); defined($_[0]) && !ref($_[0]) && Scalar::Util::looks_like_number($_[0]) })
  3 50       5  
  3         407  
  1         3  
  1         15  
337             or Hydrogen::croak(
338             "Type check failed in signature for curry_mul: %s should be %s",
339             "\\$_[0]", "Num"
340             );
341 1         4 my $ref = \$_[0];
342 1     0   6 return sub { Hydrogen::Number::mul( $$ref, @_ ) };
  0         0  
343             }
344              
345             =head2 C<< curry_ne( $number ) >>
346              
347             Curry the first argument of C<< Hydrogen::Number::ne >>.
348              
349             =cut
350              
351             sub curry_ne {
352 1 50   1 1 4339 @_ == 1
353             or Hydrogen::croak(
354             "Wrong number of parameters in signature for curry_ne: got %d, %s",
355             scalar(@_), "expected exactly 1 parameter"
356             );
357 3 50 33 3   17 (do { package Hydrogen::Number::__SANDBOX__; use Scalar::Util (); defined($_[0]) && !ref($_[0]) && Scalar::Util::looks_like_number($_[0]) })
  3 50       6  
  3         501  
  1         2  
  1         14  
358             or Hydrogen::croak(
359             "Type check failed in signature for curry_ne: %s should be %s",
360             "\\$_[0]", "Num"
361             );
362 1         3 my $ref = \$_[0];
363 1     0   6 return sub { Hydrogen::Number::ne( $$ref, @_ ) };
  0         0  
364             }
365              
366             =head2 C<< curry_set( $number ) >>
367              
368             Curry the first argument of C<< Hydrogen::Number::set >>.
369              
370             =cut
371              
372             sub curry_set {
373 1 50   1 1 6271 @_ == 1
374             or Hydrogen::croak(
375             "Wrong number of parameters in signature for curry_set: got %d, %s",
376             scalar(@_), "expected exactly 1 parameter"
377             );
378 3 50 33 3   20 (do { package Hydrogen::Number::__SANDBOX__; use Scalar::Util (); defined($_[0]) && !ref($_[0]) && Scalar::Util::looks_like_number($_[0]) })
  3 50       15  
  3         451  
  1         3  
  1         16  
379             or Hydrogen::croak(
380             "Type check failed in signature for curry_set: %s should be %s",
381             "\\$_[0]", "Num"
382             );
383 1         3 my $ref = \$_[0];
384 1     0   6 return sub { Hydrogen::Number::set( $$ref, @_ ) };
  0         0  
385             }
386              
387             =head2 C<< curry_sub( $number ) >>
388              
389             Curry the first argument of C<< Hydrogen::Number::sub >>.
390              
391             =cut
392              
393             sub curry_sub {
394 1 50   1 1 3957 @_ == 1
395             or Hydrogen::croak(
396             "Wrong number of parameters in signature for curry_sub: got %d, %s",
397             scalar(@_), "expected exactly 1 parameter"
398             );
399 3 50 33 3   16 (do { package Hydrogen::Number::__SANDBOX__; use Scalar::Util (); defined($_[0]) && !ref($_[0]) && Scalar::Util::looks_like_number($_[0]) })
  3 50       7  
  3         386  
  1         69  
  1         18  
400             or Hydrogen::croak(
401             "Type check failed in signature for curry_sub: %s should be %s",
402             "\\$_[0]", "Num"
403             );
404 1         3 my $ref = \$_[0];
405 1     0   6 return sub { Hydrogen::Number::sub( $$ref, @_ ) };
  0            
406             }
407              
408             1;
409              
410             =head1 EXPORT
411              
412             No functions are exported by this module by default. To import them all (this is usually a bad idea), use:
413              
414             use Hydrogen::Curry::Number -all;
415              
416             To import a particular function, use:
417              
418             use Hydrogen::Curry::Number 'curry_ceil';
419              
420             To rename functions:
421              
422             use Hydrogen::Curry::Number 'curry_ceil' => { -as => 'myfunc' };
423              
424             On Perl 5.37.2+ (or if L is installed) you can import lexically:
425              
426             use Hydrogen::Curry::Number -lexical, 'curry_ceil';
427              
428             See L for more hints on importing.
429              
430             =head1 BUGS
431              
432             Please report any bugs to
433             L.
434              
435             =head1 SEE ALSO
436              
437             L,
438             L,
439             L,
440             L.
441              
442             =head1 AUTHOR
443              
444             Toby Inkster Etobyink@cpan.orgE.
445              
446             =head1 COPYRIGHT AND LICENCE
447              
448             This software is copyright (c) 2022-2025 by Toby Inkster.
449              
450             This is free software; you can redistribute it and/or modify it under
451             the same terms as the Perl 5 programming language system itself.
452              
453             =head1 DISCLAIMER OF WARRANTIES
454              
455             THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
456             WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
457             MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
458