use APR::Table;
use APR::Error;

package Apache::Request::Table;
push our(@ISA), "APR::Table";
BEGIN {
    my @BAD_METHODS = qw/compress merge overlap/;
    for (@BAD_METHODS) {
        no strict;
        next unless my $meth = APR::Table->can($_);
        *{$_} = sub {die __PACKAGE__ ."::",  "$_: unsafe operation"};
    }
}


package Apache::Request::Error;
push our(@ISA), qw/APR::Error Apache::Request/;

package Apache::Request;
push our(@ISA), "Apache::RequestRec" if  __PACKAGE__ -> env eq "Apache::RequestRec";

sub new {
    my $class = shift;
    my $env = shift;
    my $req = $class->request($env);
    $req->config(@_);
    return $req;
}

*instance = *new;

sub param;

*parms = *param;
*params = *param;

sub param_status {
    my $req = shift;
    return wantarray ? ($req->args_status, $req->body_status)
                     : $req->args_status || $req->body_status;
}
