[TOC]

# fidl.test.arrays




## **STRUCTS**

### StructLargeArray {#StructLargeArray}
*Defined in [fidl.test.arrays/arrays.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/arrays.test.fidl;l=7)*



<table>
    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr id="StructLargeArray.a">
            <td><code>a</code></td>
            <td>
                <code>uint32[100]</code>
            </td>
            <td></td>
            <td>No default</td>
        </tr>
</table>

### StructSmallArray {#StructSmallArray}
*Defined in [fidl.test.arrays/arrays.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/arrays.test.fidl;l=3)*



<table>
    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr id="StructSmallArray.a">
            <td><code>a</code></td>
            <td>
                <code>uint32[2]</code>
            </td>
            <td></td>
            <td>No default</td>
        </tr>
</table>





## **TABLES**

### TableLargeArray {#TableLargeArray}


*Defined in [fidl.test.arrays/arrays.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/arrays.test.fidl;l=15)*



<table>
    <tr><th>Ordinal</th><th>Name</th><th>Type</th><th>Description</th></tr>
    <tr id="TableLargeArray.a">
            <td>1</td>
            <td><code>a</code></td>
            <td>
                <code>uint32[100]</code>
            </td>
            <td></td>
        </tr></table>

### TableSmallArray {#TableSmallArray}


*Defined in [fidl.test.arrays/arrays.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/arrays.test.fidl;l=11)*



<table>
    <tr><th>Ordinal</th><th>Name</th><th>Type</th><th>Description</th></tr>
    <tr id="TableSmallArray.a">
            <td>1</td>
            <td><code>a</code></td>
            <td>
                <code>uint32[2]</code>
            </td>
            <td></td>
        </tr></table>



## **UNIONS**

### UnionLargeArray {#UnionLargeArray}
*Defined in [fidl.test.arrays/arrays.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/arrays.test.fidl;l=23)*


<table>
    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr id="UnionLargeArray.a">
            <td><code>a</code></td>
            <td>
                <code>uint32[100]</code>
            </td>
            <td></td>
        </tr></table>

### UnionSmallArray {#UnionSmallArray}
*Defined in [fidl.test.arrays/arrays.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/arrays.test.fidl;l=19)*


<table>
    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr id="UnionSmallArray.a">
            <td><code>a</code></td>
            <td>
                <code>uint32[2]</code>
            </td>
            <td></td>
        </tr></table>







