+# returns PublicInbox::HTTP::{Chunked,Identity}
+sub http_out ($) {
+ my ($self) = @_;
+ $self->{http_out} // do {
+ my $args = delete $self->{wcb_args} // return undef;
+ my $wcb = pop @$args; # from PublicInbox:HTTP async
+ # $args->[0] may be \&mbox_hdr or similar
+ $args = $args->[0]->($self) if ref($args->[0]) eq 'CODE';
+ $self->{gz} //= gz_or_noop($args->[1], $self->{env});
+ $self->{http_out} = $wcb->($args); # $wcb->([$code, $hdr_ary])
+ };
+}
+