<!-- Generated with Stardoc: http://skydoc.bazel.build -->

<a name="#my_rule"></a>

## my_rule

<pre>
my_rule(<a href="#my_rule-name">name</a>, <a href="#my_rule-deps">deps</a>, <a href="#my_rule-extra_arguments">extra_arguments</a>, <a href="#my_rule-out">out</a>, <a href="#my_rule-src">src</a>, <a href="#my_rule-tool">tool</a>)
</pre>

This rule exercises some of the build API.

### Attributes

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="my_rule-name">
      <td><code>name</code></td>
      <td>
        <a href="https://bazel.build/docs/build-ref.html#name">Name</a>; required
        <p>
          A unique name for this target.
        </p>
      </td>
    </tr>
    <tr id="my_rule-deps">
      <td><code>deps</code></td>
      <td>
        <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a>; optional
        <p>
          A list of dependencies.
        </p>
        <p>
          The dependencies of this attribute must provide: MyInfo
        </p>
      </td>
    </tr>
    <tr id="my_rule-extra_arguments">
      <td><code>extra_arguments</code></td>
      <td>
        List of strings; optional
      </td>
    </tr>
    <tr id="my_rule-out">
      <td><code>out</code></td>
      <td>
        <a href="https://bazel.build/docs/build-ref.html#labels">Label</a>; required
        <p>
          The output file.
        </p>
      </td>
    </tr>
    <tr id="my_rule-src">
      <td><code>src</code></td>
      <td>
        <a href="https://bazel.build/docs/build-ref.html#labels">Label</a>; optional
        <p>
          The source file.
        </p>
      </td>
    </tr>
    <tr id="my_rule-tool">
      <td><code>tool</code></td>
      <td>
        <a href="https://bazel.build/docs/build-ref.html#labels">Label</a>; optional
        <p>
          The location of the tool to use.
        </p>
      </td>
    </tr>
  </tbody>
</table>


<a name="#MyInfo"></a>

## MyInfo

<pre>
MyInfo(<a href="#MyInfo-foo">foo</a>, <a href="#MyInfo-bar">bar</a>)
</pre>



### Fields

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="MyInfo-foo">
      <td><code>foo</code></td>
      <td>
        <p>Something foo-related.</p>
      </td>
    </tr>
    <tr id="MyInfo-bar">
      <td><code>bar</code></td>
      <td>
        <p>Something bar-related.</p>
      </td>
    </tr>
  </tbody>
</table>


<a name="#exercise_the_api"></a>

## exercise_the_api

<pre>
exercise_the_api()
</pre>





<a name="#my_rule_impl"></a>

## my_rule_impl

<pre>
my_rule_impl(<a href="#my_rule_impl-ctx">ctx</a>)
</pre>



### Parameters

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="my_rule_impl-ctx">
      <td><code>ctx</code></td>
      <td>
        required.
      </td>
    </tr>
  </tbody>
</table>


