Red.git | docs/coverage/report-data/ | Red-Statement.html


<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>RaCoCo result: Red::Statement</title>
	<link rel="stylesheet"
				href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
				integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
				crossorigin="anonymous">
	<style>
      pre.code::before {
          counter-reset: listing;
      }

      pre.code span {
          counter-increment: listing;
      }

      pre.code span::before {
          content: counter(listing) ". ";
      }

      .coverage-green {
          background-color: #32CD32;
          /*color-blind
          background-color: #00CED1;
          /**/
      }

      .coverage-red {
          background-color: #fa8072;
      }

      .coverage-purple {
          background-color: #9370DB;
      }
	</style>
</head>
<body>
<div class="container">
	<div class="row mt-5 mb-3">
		<div class="col-12">
			<div class="page-header">
				<h1>Red::Statement 76.4%</h1>
			</div>
		</div>
	</div>
	<div class="row justify-content-md-center">
		<div class="col-md-10">
			<pre class="code">
<span class="coverage-green">#| Base role to DB statements</span>
<span class="coverage-no">#| Returned by .query</span>
<span class="coverage-green">unit role Red::Statement;</span>
<span class="coverage-no">has $.statement;</span>
<span class="coverage-no">has @.binds is rw;</span>
<span class="coverage-no">has $.driver is required;</span>
<span class="coverage-red">has Bool $!predefined-bind = False;</span>
<span class="coverage-no"></span>
<span class="coverage-no"># How to execute a query must be implemented</span>
<span class="coverage-red">method stt-exec($, *@) { ... }</span>
<span class="coverage-no"></span>
<span class="coverage-green">method predefined-bind { $!predefined-bind = True }</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| Execute the pre-prepared query</span>
<span class="coverage-green">method execute(*@binds) is hidden-from-backtrace {</span>
<span class="coverage-green">    CATCH {</span>
<span class="coverage-green">        default {</span>
<span class="coverage-green">            $!driver.map-exception($_).throw</span>
<span class="coverage-no">        }</span>
<span class="coverage-no">    }</span>
<span class="coverage-green">    $!statement = self.stt-exec: $!statement, |@binds;</span>
<span class="coverage-green">    self</span>
<span class="coverage-no">}</span>
<span class="coverage-no"></span>
<span class="coverage-red">method prepare($query) { $!driver.prepare: $query }</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| How to get a row must be implemented</span>
<span class="coverage-red">method stt-row($ --&gt; Hash()) { ... }</span>
<span class="coverage-no"></span>
<span class="coverage-no">#| Get the next row</span>
<span class="coverage-green">method row {</span>
<span class="coverage-green">    my \resp = self.stt-row: $!statement;</span>
<span class="coverage-green">    note resp if $*RED-DEBUG-RESPONSE;</span>
<span class="coverage-green">    resp</span>
<span class="coverage-no">}</span>
			</pre>
		</div>
	</div>
</div>
</body>
</html>