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

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

## my_anglebrac

<pre>
my_anglebrac(<a href="#my_anglebrac-name">name</a>, <a href="#my_anglebrac-useless">useless</a>)
</pre>

Rule with &lt;brackets&gt;

### Attributes

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="my_anglebrac-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_anglebrac-useless">
      <td><code>useless</code></td>
      <td>
        String; optional
        <p>
          Args with some <b>formatting</b>
        </p>
      </td>
    </tr>
  </tbody>
</table>


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

## bracketuse

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

Information with &lt;brackets&gt;

### Fields

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="bracketuse-foo">
      <td><code>foo</code></td>
      <td>
        <p>A string representing foo</p>
      </td>
    </tr>
    <tr id="bracketuse-bar">
      <td><code>bar</code></td>
      <td>
        <p>A string representing bar</p>
      </td>
    </tr>
    <tr id="bracketuse-baz">
      <td><code>baz</code></td>
      <td>
        <p>A string representing baz</p>
      </td>
    </tr>
  </tbody>
</table>


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

## bracket_function

<pre>
bracket_function(<a href="#bracket_function-name">name</a>)
</pre>

Dummy docstring with &lt;brackets&gt;.

This rule runs checks on &lt;angle brackets&gt;.


### Returns

some &lt;angled&gt; brackets

### Parameters

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="bracket_function-name">
      <td><code>name</code></td>
      <td>
        required.
        <p>
          an arg with <b>formatted</b> docstring.
        </p>
      </td>
    </tr>
  </tbody>
</table>


