X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMouse%2FUtil%2FTypeConstraints.pm;h=e811ad5833efca840823c01a1e30ff46d5fce8c7;hb=5fa003bf0b3308fd48519ff1173feb778c550c01;hp=885788ae75ac1595eb03d18f55dcd68c580b056d;hpb=d44f0d03f175f6812650ec7c86cb3b3878667cae;p=gitmo%2FMouse.git diff --git a/lib/Mouse/Util/TypeConstraints.pm b/lib/Mouse/Util/TypeConstraints.pm index 885788a..e811ad5 100644 --- a/lib/Mouse/Util/TypeConstraints.pm +++ b/lib/Mouse/Util/TypeConstraints.pm @@ -161,7 +161,19 @@ sub typecast_constraints { return $value; } +my $serial_enum = 0; sub enum { + # enum ['small', 'medium', 'large'] + if (ref($_[0]) eq 'ARRAY') { + my @elements = @{ shift @_ }; + + my $name = 'Mouse::Util::TypeConstaints::Enum::Serial::' + . ++$serial_enum; + enum($name, @elements); + return $name; + } + + # enum size => 'small', 'medium', 'large' my $name = shift; my %is_valid = map { $_ => 1 } @_;