-
-
09 Dec 2016 12:06:11 UTC
- Distribution: Data-Sah-Util-Type
- Module version: 0.46
- Source (raw)
- Browse (raw)
- Changes
- Homepage
- How to Contribute
- Repository
- Issues
- Testers (7589 / 0 / 13)
- Kwalitee
Bus factor: 1- 79.63% Coverage
- License: perl_5
- Perl: v5.10.1
- Activity
24 month- Tools
- Download (16.12KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
- NAME
- VERSION
- SYNOPSIS
- DESCRIPTION
- FUNCTIONS
- HOMEPAGE
- SOURCE
- BUGS
- SEE ALSO
- AUTHOR
- COPYRIGHT AND LICENSE
NAME
Data::Sah::Util::Type - Utility functions related to types
VERSION
This document describes version 0.46 of Data::Sah::Util::Type (from Perl distribution Data-Sah-Util-Type), released on 2016-12-09.
SYNOPSIS
use Data::Sah::Util::Type qw( get_type is_type is_simple is_numeric is_collection is_ref ); say get_type("int"); # -> int say get_type("int*"); # -> int say get_type([int => min=>0]); # -> int say get_type("foo"); # -> foo (doesn't check type is known) say is_type("int*"); # -> 1 say is_type("foo"); # -> 0 say is_simple("int"); # -> 1 say is_simple("array"); # -> 0 say is_simple([any => of => ["float", "str"]); # -> 1 say is_simple("re"); # -> 1 say is_simple("foo"); # -> 0 say is_collection("array*"); # -> 1 say is_collection(["hash", of=>"int"]); # -> 1 say is_collection("str"); # -> 0 say is_collection("foo"); # -> 0 say is_ref("code*"); # -> 1 say is_ref("array"); # -> 1 say is_ref("str"); # -> 0 say is_ref("foo"); # -> 0 say is_numeric(["int", min=>0]); # -> 1 say is_numeric("str"); # -> 0 say is_numeric("foo"); # -> 0
DESCRIPTION
This module provides some secondary utility functions related to Sah and Data::Sah. It is deliberately distributed separately from the Data-Sah main distribution to be differentiated from Data::Sah::Util which contains "primary" utilities and is distributed with Data-Sah.
Reference table for simple/collection/ref/numeric criteria of builtin types:
+----------+-----------+---------------+--------+------------+ | type | is_simple | is_collection | is_ref | is_numeric | +----------+-----------+---------------+--------+------------+ | array | | 1 | 1 | | | bool | 1 | | | | | buf | 1 | | | | | cistr | 1 | | | | | code | | | 1 | | | date | 1 | | | | | duration | 1 | | | | | float | 1 | | | 1 | | hash | | 1 | 1 | | | int | 1 | | | 1 | | num | 1 | | | 1 | | obj | | | 1 | | | re | 1 | | 1 | | | str | 1 | | | | | undef | 1 | | | | +----------+-----------+---------------+--------+------------+
FUNCTIONS
None exported by default, but they are exportable.
get_type($sch) => STR
Return type name.
is_type($sch) => STR
Return type name if type in schema is known, or undef.
is_simple($sch[, \%opts]) => BOOL
Simple means "scalar" or can be represented as a scalar. This is currently used to determine if a builtin type can be specified as an argument or option value in command-line.
This includes
re
,bool
, as well asdate
andduration
.If type is
all
, then for this routine to be true all of the mentioned types must be simple. If type isany
, then for this routine to be true at least one of the mentioned types must be simple.Options:
schema_is_normalized => BOOL
is_collection($sch[, \%opts]) => BOOL
Collection means
array
orhash
.If type is
all
, then for this routine to be true all of the mentioned types must be collection. If type isany
, then for this routine to be true at least one of the mentioned types must be collection.is_ref($sch[, \%opts]) => BOOL
"Ref" means generally a reference in Perl. But
date
andduration
are not regarded as "ref". Regular expression on the other hand is regarded as a ref.If type is
all
, then for this routine to be true all of the mentioned types must be "ref". If type isany
, then for this routine to be true at least one of the mentioned types must be "ref".is_numeric($sch[, \%opts]) => BOOL
Currently, only
num
,int
, andfloat
are numeric.If type is
all
, then for this routine to be true all of the mentioned types must be numeric. If type isany
, then for this routine to be true at least one of the mentioned types must be numeric.HOMEPAGE
Please visit the project's homepage at https://metacpan.org/release/Data-Sah-Util-Type.
SOURCE
Source repository is at https://github.com/perlancar/perl-Data-Sah-Util-Type.
BUGS
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Data-Sah-Util-Type
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
SEE ALSO
AUTHOR
perlancar <perlancar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2016 by perlancar@cpan.org.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
Module Install Instructions
To install Data::Sah::Util::Type, copy and paste the appropriate command in to your terminal.
cpanm Data::Sah::Util::Type
perl -MCPAN -e shell install Data::Sah::Util::Type
For more information on module installation, please visit the detailed CPAN module installation guide.