metadata for values, order by, values for literals
[dbsrgits/Data-Query.git] / lib / Data / Query / ExprHelpers.pm
1 package Data::Query::ExprHelpers;
2
3 use strictures 1;
4 use Data::Query::Constants qw(DQ_VALUE DQ_OPERATOR DQ_IDENTIFIER);
5
6 use base qw(Exporter);
7
8 our @EXPORT_OK = qw(perl_scalar_value perl_operator identifier);
9
10 sub perl_scalar_value {
11   +{
12     type => DQ_VALUE,
13     subtype => { Perl => 'Scalar' },
14     value => $_[0],
15     $_[1] ? (value_meta => $_[1]) : ()
16   }
17 }
18
19 sub perl_operator {
20   my ($op, @args) = @_;
21   +{
22     type => DQ_OPERATOR,
23     operator => { Perl => $op },
24     args => \@args
25   }
26 }
27
28 sub identifier {
29   +{
30     type => DQ_IDENTIFIER,
31     elements => [ @_ ]
32   }
33 }
34
35 1;