searchstate setup, introduce qvars diagnostic
[scpubgit/DX.git] / lib / DX / ShellState.pm
1 package DX::ShellState;
2
3 use DX::Class;
4
5 has template_query_state => (
6   is => 'ro', required => 1, isa => QueryState
7 );
8
9 has current_query_state => (
10   is => 'lazy', builder => 'new_query_state'
11 );
12
13 has mode => (is => 'ro', required => 1);
14
15 sub new_query_state { $_[0]->template_query_state }
16
17 sub with_new_query_state {
18   my ($self) = @_;
19   $self->but(
20     current_query_state => $self->new_query_state
21   );
22 }
23
24 sub with_mode {
25   my ($self, $new_mode) = @_;
26   return (
27     $self->but(mode => $new_mode),
28     [ mode => $new_mode ],
29   );
30 }
31
32 1;