Type::Tiny::Enum(3) | User Contributed Perl Documentation | Type::Tiny::Enum(3) |
Type::Tiny::Enum - string enum type constraints
This module is covered by the Type-Tiny stability policy.
Enum type constraints.
This package inherits from Type::Tiny; see that for most documentation. Major differences are listed below:
my $enum = Type::Tiny::Enum->new(...); my $check = $enum->compiled_check; my $re = $enum->as_regexp; # fast my @valid_tokens = grep $enum->check($_), @all_tokens; # faster my @valid_tokens = grep $check->($_), @all_tokens; # fastest my @valid_tokens = grep /$re/, @all_tokens;
You can get a case-insensitive regexp using "$enum->as_regexp('i')".
my $enum = Type::Tiny::Enum->new( value => [ qw( foo bar baz quux ) ], ); say $enum->closest_match("FO"); # ==> foo
It will try to find an exact match first, fall back to a case-insensitive match, if it still can't find one, will try to find a head substring match, and finally, if given an integer, will use that as an index.
my $enum = Type::Tiny::Enum->new( value => [ qw( foo bar baz quux ) ], ); say $enum->closest_match( 0 ); # ==> foo say $enum->closest_match( 1 ); # ==> bar say $enum->closest_match( 2 ); # ==> baz say $enum->closest_match( -1 ); # ==> quux
Please report any bugs to <http://rt.cpan.org/Dist/Display.html?Queue=Type-Tiny>.
Type::Tiny::Manual.
Type::Tiny.
Moose::Meta::TypeConstraint::Enum.
Toby Inkster <tobyink@cpan.org>.
This software is copyright (c) 2013-2014, 2017-2020 by Toby Inkster.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
2020-10-28 | perl v5.34.0 |