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

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

## check_sources

<pre>
check_sources(<a href="#check_sources-name">name</a>, <a href="#check_sources-required_param">required_param</a>, <a href="#check_sources-bool_param">bool_param</a>, <a href="#check_sources-srcs">srcs</a>, <a href="#check_sources-string_param">string_param</a>, <a href="#check_sources-int_param">int_param</a>, <a href="#check_sources-dict_param">dict_param</a>,
              <a href="#check_sources-struct_param">struct_param</a>)
</pre>

Runs some checks on the given source files.

This rule runs checks on a given set of source files.
Use `bazel build` to run the check.


### Parameters

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="check_sources-name">
      <td><code>name</code></td>
      <td>
        required.
        <p>
          A unique name for this rule.
        </p>
      </td>
    </tr>
    <tr id="check_sources-required_param">
      <td><code>required_param</code></td>
      <td>
        required.
        <p>
          Use your imagination.
        </p>
      </td>
    </tr>
    <tr id="check_sources-bool_param">
      <td><code>bool_param</code></td>
      <td>
        optional. default is <code>True</code>
      </td>
    </tr>
    <tr id="check_sources-srcs">
      <td><code>srcs</code></td>
      <td>
        optional. default is <code>[]</code>
        <p>
          Source files to run the checks against.
        </p>
      </td>
    </tr>
    <tr id="check_sources-string_param">
      <td><code>string_param</code></td>
      <td>
        optional. default is <code>""</code>
      </td>
    </tr>
    <tr id="check_sources-int_param">
      <td><code>int_param</code></td>
      <td>
        optional. default is <code>2</code>
        <p>
          Your favorite number.
        </p>
      </td>
    </tr>
    <tr id="check_sources-dict_param">
      <td><code>dict_param</code></td>
      <td>
        optional. default is <code>{}</code>
      </td>
    </tr>
    <tr id="check_sources-struct_param">
      <td><code>struct_param</code></td>
      <td>
        optional. default is <code>struct(foo = "bar")</code>
      </td>
    </tr>
  </tbody>
</table>


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

## undocumented_function

<pre>
undocumented_function(<a href="#undocumented_function-a">a</a>, <a href="#undocumented_function-b">b</a>, <a href="#undocumented_function-c">c</a>)
</pre>



### Parameters

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="undocumented_function-a">
      <td><code>a</code></td>
      <td>
        required.
      </td>
    </tr>
    <tr id="undocumented_function-b">
      <td><code>b</code></td>
      <td>
        required.
      </td>
    </tr>
    <tr id="undocumented_function-c">
      <td><code>c</code></td>
      <td>
        required.
      </td>
    </tr>
  </tbody>
</table>


