From: Vincent Pit Date: Tue, 20 Jul 2010 10:20:36 +0000 (+0900) Subject: Implement Mouse::Util::TypeConstraints::register_type_constraint() X-Git-Tag: 0.63~2 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMouse.git;a=commitdiff_plain;h=35ce550a1ba037da13228f2bbb8306e101d263d5 Implement Mouse::Util::TypeConstraints::register_type_constraint() --- diff --git a/lib/Mouse/Util/TypeConstraints.pm b/lib/Mouse/Util/TypeConstraints.pm index ef8bd2f..3289de6 100644 --- a/lib/Mouse/Util/TypeConstraints.pm +++ b/lib/Mouse/Util/TypeConstraints.pm @@ -17,6 +17,7 @@ Mouse::Exporter->setup_import_methods( coerce find_type_constraint + register_type_constraint )], ); @@ -367,6 +368,16 @@ sub find_type_constraint { return $TYPE{$spec}; } +sub register_type_constraint { + my($constraint) = @_; + Carp::croak("No type supplied / type is not a valid type constraint") + unless Mouse::Util::is_a_type_constraint($constraint); + my $name = $constraint->name; + Carp::croak("can't register an unnamed type constraint") + unless defined $name; + return $TYPE{$name} = $constraint; +} + sub find_or_parse_type_constraint { my($spec) = @_; return $spec if Mouse::Util::is_a_type_constraint($spec);