1 package DX::ShellState;
3 use DX::Utils qw(deparse);
6 has template_query_state => (
7 is => 'ro', required => 1, isa => QueryState
10 has current_query_state => (
11 is => 'lazy', builder => 'new_query_state'
14 has mode => (is => 'ro', required => 1);
16 sub new_query_state { $_[0]->template_query_state }
20 my ($tag, $thing) = @_;
21 my $dp = deparse($thing);
23 warn "${tag}: ${dp}\n";
27 sub with_new_query_state {
30 current_query_state => $self->new_query_state
35 my ($self, $new_mode) = @_;
37 $self->but(mode => $new_mode),
38 [ mode => $new_mode ],