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


