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

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

## check_struct_default_values

<pre>
check_struct_default_values(<a href="#check_struct_default_values-struct_no_args">struct_no_args</a>, <a href="#check_struct_default_values-struct_arg">struct_arg</a>, <a href="#check_struct_default_values-struct_args">struct_args</a>, <a href="#check_struct_default_values-struct_int_args">struct_int_args</a>,
                            <a href="#check_struct_default_values-struct_struct_args">struct_struct_args</a>)
</pre>

Checks the default values of structs.

### Parameters

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="check_struct_default_values-struct_no_args">
      <td><code>struct_no_args</code></td>
      <td>
        optional. default is <code>struct()</code>
        <p>
          struct with no arguments
        </p>
      </td>
    </tr>
    <tr id="check_struct_default_values-struct_arg">
      <td><code>struct_arg</code></td>
      <td>
        optional. default is <code>struct(foo = "bar")</code>
        <p>
          struct with one argument
        </p>
      </td>
    </tr>
    <tr id="check_struct_default_values-struct_args">
      <td><code>struct_args</code></td>
      <td>
        optional. default is <code>struct(bar = "foo", foo = "bar")</code>
        <p>
          struct with multiple arguments
        </p>
      </td>
    </tr>
    <tr id="check_struct_default_values-struct_int_args">
      <td><code>struct_int_args</code></td>
      <td>
        optional. default is <code>struct(one = 1, three = 3, two = 2)</code>
        <p>
          struct with int arguments
        </p>
      </td>
    </tr>
    <tr id="check_struct_default_values-struct_struct_args">
      <td><code>struct_struct_args</code></td>
      <td>
        optional. default is <code>struct(multiple = struct(one = 1, three = 3, two = 2), none = struct(), one = struct(foo = "bar"))</code>
        <p>
          struct with struct arguments
        </p>
      </td>
    </tr>
  </tbody>
</table>


