RaCoCo result: Red::Statement

# Red::Statement 76.4%

    #| Base role to DB statements
    #| Returned by .query
    unit role Red::Statement;
    has $.statement;
    has @.binds is rw;
    has $.driver is required;
    has Bool $!predefined-bind = False;

    # How to execute a query must be implemented
    method stt-exec($, *@) { ... }

    method predefined-bind { $!predefined-bind = True }

    #| Execute the pre-prepared query
    method execute(*@binds) is hidden-from-backtrace {
        CATCH {
            default {
                $!driver.map-exception($_).throw
            }
        }
        $!statement = self.stt-exec: $!statement, |@binds;
        self
    }

    method prepare($query) { $!driver.prepare: $query }

    #| How to get a row must be implemented
    method stt-row($ --> Hash()) { ... }

    #| Get the next row
    method row {
        my \resp = self.stt-row: $!statement;
        note resp if $*RED-DEBUG-RESPONSE;
        resp
    }