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