/usr/local/CPAN/Padre-Plugin-Vi/Vimper/Types.pm
package Vimper::Types;
use 5.010;
use Moose;
use Moose::Autobox;
use MooseX::Types::Moose qw(Str Int ArrayRef Bool);
use MooseX::Types -declare, [qw(
StrList SheetBool SheetTriState
)];
# common types
subtype StrList, as ArrayRef;
coerce StrList, from Str, via { $_->split(qr/ /) };
subtype SheetBool, as Bool;
coerce SheetBool, from Str, via { $_ ~~ /â/? 1:
$_ ~~ /â/? 0:
die "SheetBool: $_" };
subtype SheetTriState, as Int, where { $_ >= 0 and $_ <= 2 };
coerce SheetTriState, from Str, via { $_ ~~ /â/? 2:
$_ ~~ /â/? 1:
$_ ~~ /â/? 0:
die "SheetTriState: $_" };
1;