2 class SQL::Abstract::Types {
3 use Moose::Util::TypeConstraints;
4 use MooseX::Types -declare => [qw/NameSeparator QuoteChars AST/];
5 use MooseX::Types::Moose qw/ArrayRef Str Int Ref HashRef/;
7 subtype AST, as HashRef,
8 where { exists $_->{-type} && is_Str($_->{-type}) },
9 message { "No '-type' key, or it is not a string" };
11 subtype NameSeparator,
13 where { length($_) == 1 };
18 where { @$_ == 1 || @$_ == 2 },
19 message { "Quote characters must be one or two elements" };
21 coerce QuoteChars, from Str, via { [ split //, $_ ] };