6 has on_progress => (is => 'ro');
8 has on_result => (is => 'ro', required => 1);
10 has is_done => (is => 'rw', default => sub { 0 });
13 my ($self, @report) = @_;
14 if (my $cb = $self->on_progress) {
20 my ($self, $type, @data) = @_;
22 $self->on_result->(Tak::Result->new(type => $type, data => \@data));
27 return ($self->type, @{$self->data});
30 sub success { shift->result(success => @_) }
31 sub mistake { shift->result(mistake => @_) }
32 sub failure { shift->result(failure => @_) }
33 sub fatal { shift->result(fatal => @_) }