use Scalar::Util qw/blessed looks_like_number openhandle/;
our @EXPORT = qw(
- as where message from via type subtype coerce class_type role_type
+ as where message from via type subtype coerce class_type role_type enum
);
my %TYPE;
return $value;
}
+sub enum {
+ my $name = shift;
+ my %is_valid = map { $_ => 1 } @_;
+
+ subtype(
+ $name => where => sub { $is_valid{$_} }
+ );
+}
+
1;
__END__