<!-- 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/concepts/labels#target-names">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/concepts/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/concepts/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/concepts/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/concepts/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>


