as Depending[
Int,
sub {
- shift->not_exists(shift);
+ shift->exists(shift) ? 0:1;
},
Set,
];
possible sugar options
- Depending
- as Depending sub :Set {} Int;
- depending(Set $set) { $set->exists($Int) } Int;
+ as Depending {
+ shift->exists(shift) ? 0:1;
+ } [Int, Set];
May have some ready to go, such as
as isGreaterThan[
my $dep_tc = MooseX::Meta::TypeConstraint::Dependent->new(
name => "MooseX::Types::Dependent::Depending" ,
- parent => find_type_constraint('Int'),
+ parent => find_type_constraint('ArrayRef'),
dependent_type_constraint=>$int,
comparison_callback=>sub {
my ($constraining_value, $check_value) = @_;
isa_ok $dep_tc, 'MooseX::Meta::TypeConstraint::Dependent';
- ok !$dep_tc->check('a',10), "Fails, 'a' is not an Int.";
- ok !$dep_tc->check(5,'b'), "Fails, 'b' is not an Int either.";
- ok !$dep_tc->check([4,1]), "Fails, since this isn't an arrayref";
- ok !$dep_tc->check(5,10), "Fails, 5 is less than 10";
- ok $dep_tc->check(11,6), "Success, 11 is greater than 6.";
+ ok !$dep_tc->check(['a',10]), "Fails, 'a' is not an Int.";
+ ok !$dep_tc->check([5,'b']), "Fails, 'b' is not an Int either.";
+ ok !$dep_tc->check({4,1}), "Fails, since this isn't an arrayref";
+ ok !$dep_tc->check([5,10]), "Fails, 5 is less than 10";
+ ok $dep_tc->check([11,6]), "Success, 11 is greater than 6.";
}