blob: cae005e313af41078e6a21069364f384d154739e [file] [log] [blame]
<link rel="stylesheet" href="../style.css" />
[TOC]
# test.typesinprotocols
## **PROTOCOLS**
## Protocol {#Protocol}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=151)*
### ErrorArrayBasic {#Protocol.ErrorArrayBasic}
#### Request {#Protocol.ErrorArrayBasic_Request}
&lt;EMPTY&gt;
#### Response {#Protocol.ErrorArrayBasic_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>payload</code></td>
<td>
<code><a class='link' href='#Protocol_ErrorArrayBasic_Result'>Protocol_ErrorArrayBasic_Result</a></code>
</td>
</tr>
</table>
### ErrorArrayCompound {#Protocol.ErrorArrayCompound}
#### Request {#Protocol.ErrorArrayCompound_Request}
&lt;EMPTY&gt;
#### Response {#Protocol.ErrorArrayCompound_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>payload</code></td>
<td>
<code><a class='link' href='#Protocol_ErrorArrayCompound_Result'>Protocol_ErrorArrayCompound_Result</a></code>
</td>
</tr>
</table>
### ErrorArrayVectorNested {#Protocol.ErrorArrayVectorNested}
#### Request {#Protocol.ErrorArrayVectorNested_Request}
&lt;EMPTY&gt;
#### Response {#Protocol.ErrorArrayVectorNested_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>payload</code></td>
<td>
<code><a class='link' href='#Protocol_ErrorArrayVectorNested_Result'>Protocol_ErrorArrayVectorNested_Result</a></code>
</td>
</tr>
</table>
### ErrorBasic {#Protocol.ErrorBasic}
#### Request {#Protocol.ErrorBasic_Request}
&lt;EMPTY&gt;
#### Response {#Protocol.ErrorBasic_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>payload</code></td>
<td>
<code><a class='link' href='#Protocol_ErrorBasic_Result'>Protocol_ErrorBasic_Result</a></code>
</td>
</tr>
</table>
### ErrorCompound {#Protocol.ErrorCompound}
#### Request {#Protocol.ErrorCompound_Request}
&lt;EMPTY&gt;
#### Response {#Protocol.ErrorCompound_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>payload</code></td>
<td>
<code><a class='link' href='#Protocol_ErrorCompound_Result'>Protocol_ErrorCompound_Result</a></code>
</td>
</tr>
</table>
### ErrorResource {#Protocol.ErrorResource}
#### Request {#Protocol.ErrorResource_Request}
&lt;EMPTY&gt;
#### Response {#Protocol.ErrorResource_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>payload</code></td>
<td>
<code><a class='link' href='#Protocol_ErrorResource_Result'>Protocol_ErrorResource_Result</a></code>
</td>
</tr>
</table>
### ErrorVectorBasic {#Protocol.ErrorVectorBasic}
#### Request {#Protocol.ErrorVectorBasic_Request}
&lt;EMPTY&gt;
#### Response {#Protocol.ErrorVectorBasic_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>payload</code></td>
<td>
<code><a class='link' href='#Protocol_ErrorVectorBasic_Result'>Protocol_ErrorVectorBasic_Result</a></code>
</td>
</tr>
</table>
### ErrorVectorCompound {#Protocol.ErrorVectorCompound}
#### Request {#Protocol.ErrorVectorCompound_Request}
&lt;EMPTY&gt;
#### Response {#Protocol.ErrorVectorCompound_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>payload</code></td>
<td>
<code><a class='link' href='#Protocol_ErrorVectorCompound_Result'>Protocol_ErrorVectorCompound_Result</a></code>
</td>
</tr>
</table>
### ErrorVectorOptional {#Protocol.ErrorVectorOptional}
#### Request {#Protocol.ErrorVectorOptional_Request}
&lt;EMPTY&gt;
#### Response {#Protocol.ErrorVectorOptional_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>payload</code></td>
<td>
<code><a class='link' href='#Protocol_ErrorVectorOptional_Result'>Protocol_ErrorVectorOptional_Result</a></code>
</td>
</tr>
</table>
### EventArrayBasic {#Protocol.EventArrayBasic}
#### Response {#Protocol.EventArrayBasic_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>array_uint8</code></td>
<td>
<code>uint8[5]</code>
</td>
</tr>
<tr>
<td><code>array_uint16</code></td>
<td>
<code>uint16[5]</code>
</td>
</tr>
<tr>
<td><code>array_uint32</code></td>
<td>
<code>uint32[5]</code>
</td>
</tr>
<tr>
<td><code>array_uint64</code></td>
<td>
<code>uint64[5]</code>
</td>
</tr>
<tr>
<td><code>array_int8</code></td>
<td>
<code>int8[5]</code>
</td>
</tr>
<tr>
<td><code>array_int16</code></td>
<td>
<code>int16[5]</code>
</td>
</tr>
<tr>
<td><code>array_int32</code></td>
<td>
<code>int32[5]</code>
</td>
</tr>
<tr>
<td><code>array_int64</code></td>
<td>
<code>int64[5]</code>
</td>
</tr>
<tr>
<td><code>array_float32</code></td>
<td>
<code>float32[5]</code>
</td>
</tr>
<tr>
<td><code>array_float64</code></td>
<td>
<code>float64[5]</code>
</td>
</tr>
<tr>
<td><code>array_string</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_opt_string</code></td>
<td>
<code>[5]</code>
</td>
</tr>
</table>
### EventArrayCompound {#Protocol.EventArrayCompound}
#### Response {#Protocol.EventArrayCompound_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>array_bits</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_enum</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_struct</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_table</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_union</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_opt_struct</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_opt_union</code></td>
<td>
<code>[5]</code>
</td>
</tr>
</table>
### EventArrayVectorNested {#Protocol.EventArrayVectorNested}
#### Response {#Protocol.EventArrayVectorNested_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>array_array_uint8</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_vector_uint8</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>vector_array_uint8</code></td>
<td>
<code>vector&lt;array&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_vector_uint8</code></td>
<td>
<code>vector&lt;vector&lt;uint8&gt;&gt;</code>
</td>
</tr>
</table>
### EventBasic {#Protocol.EventBasic}
#### Response {#Protocol.EventBasic_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>uint8</code></td>
<td>
<code>uint8</code>
</td>
</tr>
<tr>
<td><code>uint16</code></td>
<td>
<code>uint16</code>
</td>
</tr>
<tr>
<td><code>uint32</code></td>
<td>
<code>uint32</code>
</td>
</tr>
<tr>
<td><code>uint64</code></td>
<td>
<code>uint64</code>
</td>
</tr>
<tr>
<td><code>int8</code></td>
<td>
<code>int8</code>
</td>
</tr>
<tr>
<td><code>int16</code></td>
<td>
<code>int16</code>
</td>
</tr>
<tr>
<td><code>int32</code></td>
<td>
<code>int32</code>
</td>
</tr>
<tr>
<td><code>int64</code></td>
<td>
<code>int64</code>
</td>
</tr>
<tr>
<td><code>float32</code></td>
<td>
<code>float32</code>
</td>
</tr>
<tr>
<td><code>float64</code></td>
<td>
<code>float64</code>
</td>
</tr>
<tr>
<td><code>string</code></td>
<td>
<code>string</code>
</td>
</tr>
<tr>
<td><code>opt_string</code></td>
<td>
<code>string?</code>
</td>
</tr>
</table>
### EventCompound {#Protocol.EventCompound}
#### Response {#Protocol.EventCompound_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>bits</code></td>
<td>
<code><a class='link' href='#Bits'>Bits</a></code>
</td>
</tr>
<tr>
<td><code>enum</code></td>
<td>
<code><a class='link' href='#Enum'>Enum</a></code>
</td>
</tr>
<tr>
<td><code>struct</code></td>
<td>
<code><a class='link' href='#Struct'>Struct</a></code>
</td>
</tr>
<tr>
<td><code>table</code></td>
<td>
<code><a class='link' href='#Table'>Table</a></code>
</td>
</tr>
<tr>
<td><code>union</code></td>
<td>
<code><a class='link' href='#Union'>Union</a></code>
</td>
</tr>
<tr>
<td><code>opt_struct</code></td>
<td>
<code><a class='link' href='#Struct'>Struct</a>?</code>
</td>
</tr>
<tr>
<td><code>opt_union</code></td>
<td>
<code><a class='link' href='#Union'>Union</a>?</code>
</td>
</tr>
</table>
### EventResource {#Protocol.EventResource}
#### Response {#Protocol.EventResource_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>handle</code></td>
<td>
<code>handle&lt;handle&gt;</code>
</td>
</tr>
<tr>
<td><code>vmo</code></td>
<td>
<code>handle&lt;vmo&gt;</code>
</td>
</tr>
<tr>
<td><code>client_end</code></td>
<td>
<code><a class='link' href='#Protocol'>Protocol</a></code>
</td>
</tr>
<tr>
<td><code>server_end</code></td>
<td>
<code>server_end&lt;<a class='link' href='#Protocol'>Protocol</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>struct</code></td>
<td>
<code><a class='link' href='#ResourceStruct'>ResourceStruct</a></code>
</td>
</tr>
<tr>
<td><code>table</code></td>
<td>
<code><a class='link' href='#ResourceTable'>ResourceTable</a></code>
</td>
</tr>
<tr>
<td><code>union</code></td>
<td>
<code><a class='link' href='#ResourceUnion'>ResourceUnion</a></code>
</td>
</tr>
<tr>
<td><code>opt_handle</code></td>
<td>
<code>handle&lt;handle&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_vmo</code></td>
<td>
<code>handle&lt;vmo&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_client_end</code></td>
<td>
<code><a class='link' href='#Protocol'>Protocol</a>?</code>
</td>
</tr>
<tr>
<td><code>opt_server_end</code></td>
<td>
<code>server_end&lt;<a class='link' href='#Protocol'>Protocol</a>&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_struct</code></td>
<td>
<code><a class='link' href='#ResourceStruct'>ResourceStruct</a>?</code>
</td>
</tr>
<tr>
<td><code>opt_union</code></td>
<td>
<code><a class='link' href='#ResourceUnion'>ResourceUnion</a>?</code>
</td>
</tr>
<tr>
<td><code>array_handle</code></td>
<td>
<code>handle[5]</code>
</td>
</tr>
<tr>
<td><code>array_vmo</code></td>
<td>
<code>vmo[5]</code>
</td>
</tr>
<tr>
<td><code>array_client_end</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_server_end</code></td>
<td>
<code>test.typesinprotocols/Protocol[5]</code>
</td>
</tr>
<tr>
<td><code>array_struct</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_table</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_union</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>vector_handle</code></td>
<td>
<code>vector&lt;handle&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_vmo</code></td>
<td>
<code>vector&lt;vmo&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_client_end</code></td>
<td>
<code>vector&lt;<a class='link' href='#Protocol'>Protocol</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_server_end</code></td>
<td>
<code>vector&lt;test.typesinprotocols/Protocol&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#ResourceStruct'>ResourceStruct</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_table</code></td>
<td>
<code>vector&lt;<a class='link' href='#ResourceTable'>ResourceTable</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_union</code></td>
<td>
<code>vector&lt;<a class='link' href='#ResourceUnion'>ResourceUnion</a>&gt;</code>
</td>
</tr>
</table>
### EventVectorBasic {#Protocol.EventVectorBasic}
#### Response {#Protocol.EventVectorBasic_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>vector_uint8</code></td>
<td>
<code>vector&lt;uint8&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_uint16</code></td>
<td>
<code>vector&lt;uint16&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_uint32</code></td>
<td>
<code>vector&lt;uint32&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_uint64</code></td>
<td>
<code>vector&lt;uint64&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_int8</code></td>
<td>
<code>vector&lt;int8&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_int16</code></td>
<td>
<code>vector&lt;int16&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_int32</code></td>
<td>
<code>vector&lt;int32&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_int64</code></td>
<td>
<code>vector&lt;int64&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_float32</code></td>
<td>
<code>vector&lt;float32&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_float64</code></td>
<td>
<code>vector&lt;float64&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_string</code></td>
<td>
<code>vector&lt;string&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_opt_string</code></td>
<td>
<code>vector&lt;string&gt;</code>
</td>
</tr>
</table>
### EventVectorCompound {#Protocol.EventVectorCompound}
#### Response {#Protocol.EventVectorCompound_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>vector_bits</code></td>
<td>
<code>vector&lt;<a class='link' href='#Bits'>Bits</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_enum</code></td>
<td>
<code>vector&lt;<a class='link' href='#Enum'>Enum</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_table</code></td>
<td>
<code>vector&lt;<a class='link' href='#Table'>Table</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_union</code></td>
<td>
<code>vector&lt;<a class='link' href='#Union'>Union</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_opt_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_opt_union</code></td>
<td>
<code>vector&lt;<a class='link' href='#Union'>Union</a>&gt;</code>
</td>
</tr>
</table>
### EventVectorOptional {#Protocol.EventVectorOptional}
#### Response {#Protocol.EventVectorOptional_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>opt_vector_uint8</code></td>
<td>
<code>vector&lt;uint8&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_vector_string</code></td>
<td>
<code>vector&lt;string&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_vector_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_vector_opt_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;?</code>
</td>
</tr>
</table>
### OneWayArrayBasic {#Protocol.OneWayArrayBasic}
#### Request {#Protocol.OneWayArrayBasic_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>array_uint8</code></td>
<td>
<code>uint8[5]</code>
</td>
</tr>
<tr>
<td><code>array_uint16</code></td>
<td>
<code>uint16[5]</code>
</td>
</tr>
<tr>
<td><code>array_uint32</code></td>
<td>
<code>uint32[5]</code>
</td>
</tr>
<tr>
<td><code>array_uint64</code></td>
<td>
<code>uint64[5]</code>
</td>
</tr>
<tr>
<td><code>array_int8</code></td>
<td>
<code>int8[5]</code>
</td>
</tr>
<tr>
<td><code>array_int16</code></td>
<td>
<code>int16[5]</code>
</td>
</tr>
<tr>
<td><code>array_int32</code></td>
<td>
<code>int32[5]</code>
</td>
</tr>
<tr>
<td><code>array_int64</code></td>
<td>
<code>int64[5]</code>
</td>
</tr>
<tr>
<td><code>array_float32</code></td>
<td>
<code>float32[5]</code>
</td>
</tr>
<tr>
<td><code>array_float64</code></td>
<td>
<code>float64[5]</code>
</td>
</tr>
<tr>
<td><code>array_string</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_opt_string</code></td>
<td>
<code>[5]</code>
</td>
</tr>
</table>
### OneWayArrayCompound {#Protocol.OneWayArrayCompound}
#### Request {#Protocol.OneWayArrayCompound_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>array_bits</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_enum</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_struct</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_table</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_union</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_opt_struct</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_opt_union</code></td>
<td>
<code>[5]</code>
</td>
</tr>
</table>
### OneWayArrayVectorNested {#Protocol.OneWayArrayVectorNested}
#### Request {#Protocol.OneWayArrayVectorNested_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>array_array_uint8</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_vector_uint8</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>vector_array_uint8</code></td>
<td>
<code>vector&lt;array&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_vector_uint8</code></td>
<td>
<code>vector&lt;vector&lt;uint8&gt;&gt;</code>
</td>
</tr>
</table>
### OneWayBasic {#Protocol.OneWayBasic}
#### Request {#Protocol.OneWayBasic_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>uint8</code></td>
<td>
<code>uint8</code>
</td>
</tr>
<tr>
<td><code>uint16</code></td>
<td>
<code>uint16</code>
</td>
</tr>
<tr>
<td><code>uint32</code></td>
<td>
<code>uint32</code>
</td>
</tr>
<tr>
<td><code>uint64</code></td>
<td>
<code>uint64</code>
</td>
</tr>
<tr>
<td><code>int8</code></td>
<td>
<code>int8</code>
</td>
</tr>
<tr>
<td><code>int16</code></td>
<td>
<code>int16</code>
</td>
</tr>
<tr>
<td><code>int32</code></td>
<td>
<code>int32</code>
</td>
</tr>
<tr>
<td><code>int64</code></td>
<td>
<code>int64</code>
</td>
</tr>
<tr>
<td><code>float32</code></td>
<td>
<code>float32</code>
</td>
</tr>
<tr>
<td><code>float64</code></td>
<td>
<code>float64</code>
</td>
</tr>
<tr>
<td><code>string</code></td>
<td>
<code>string</code>
</td>
</tr>
<tr>
<td><code>opt_string</code></td>
<td>
<code>string?</code>
</td>
</tr>
</table>
### OneWayCompound {#Protocol.OneWayCompound}
#### Request {#Protocol.OneWayCompound_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>bits</code></td>
<td>
<code><a class='link' href='#Bits'>Bits</a></code>
</td>
</tr>
<tr>
<td><code>enum</code></td>
<td>
<code><a class='link' href='#Enum'>Enum</a></code>
</td>
</tr>
<tr>
<td><code>struct</code></td>
<td>
<code><a class='link' href='#Struct'>Struct</a></code>
</td>
</tr>
<tr>
<td><code>table</code></td>
<td>
<code><a class='link' href='#Table'>Table</a></code>
</td>
</tr>
<tr>
<td><code>union</code></td>
<td>
<code><a class='link' href='#Union'>Union</a></code>
</td>
</tr>
<tr>
<td><code>opt_struct</code></td>
<td>
<code><a class='link' href='#Struct'>Struct</a>?</code>
</td>
</tr>
<tr>
<td><code>opt_union</code></td>
<td>
<code><a class='link' href='#Union'>Union</a>?</code>
</td>
</tr>
</table>
### OneWayResource {#Protocol.OneWayResource}
#### Request {#Protocol.OneWayResource_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>handle</code></td>
<td>
<code>handle&lt;handle&gt;</code>
</td>
</tr>
<tr>
<td><code>vmo</code></td>
<td>
<code>handle&lt;vmo&gt;</code>
</td>
</tr>
<tr>
<td><code>client_end</code></td>
<td>
<code><a class='link' href='#Protocol'>Protocol</a></code>
</td>
</tr>
<tr>
<td><code>server_end</code></td>
<td>
<code>server_end&lt;<a class='link' href='#Protocol'>Protocol</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>struct</code></td>
<td>
<code><a class='link' href='#ResourceStruct'>ResourceStruct</a></code>
</td>
</tr>
<tr>
<td><code>table</code></td>
<td>
<code><a class='link' href='#ResourceTable'>ResourceTable</a></code>
</td>
</tr>
<tr>
<td><code>union</code></td>
<td>
<code><a class='link' href='#ResourceUnion'>ResourceUnion</a></code>
</td>
</tr>
<tr>
<td><code>opt_handle</code></td>
<td>
<code>handle&lt;handle&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_vmo</code></td>
<td>
<code>handle&lt;vmo&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_client_end</code></td>
<td>
<code><a class='link' href='#Protocol'>Protocol</a>?</code>
</td>
</tr>
<tr>
<td><code>opt_server_end</code></td>
<td>
<code>server_end&lt;<a class='link' href='#Protocol'>Protocol</a>&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_struct</code></td>
<td>
<code><a class='link' href='#ResourceStruct'>ResourceStruct</a>?</code>
</td>
</tr>
<tr>
<td><code>opt_union</code></td>
<td>
<code><a class='link' href='#ResourceUnion'>ResourceUnion</a>?</code>
</td>
</tr>
<tr>
<td><code>array_handle</code></td>
<td>
<code>handle[5]</code>
</td>
</tr>
<tr>
<td><code>array_vmo</code></td>
<td>
<code>vmo[5]</code>
</td>
</tr>
<tr>
<td><code>array_client_end</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_server_end</code></td>
<td>
<code>test.typesinprotocols/Protocol[5]</code>
</td>
</tr>
<tr>
<td><code>array_struct</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_table</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_union</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>vector_handle</code></td>
<td>
<code>vector&lt;handle&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_vmo</code></td>
<td>
<code>vector&lt;vmo&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_client_end</code></td>
<td>
<code>vector&lt;<a class='link' href='#Protocol'>Protocol</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_server_end</code></td>
<td>
<code>vector&lt;test.typesinprotocols/Protocol&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#ResourceStruct'>ResourceStruct</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_table</code></td>
<td>
<code>vector&lt;<a class='link' href='#ResourceTable'>ResourceTable</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_union</code></td>
<td>
<code>vector&lt;<a class='link' href='#ResourceUnion'>ResourceUnion</a>&gt;</code>
</td>
</tr>
</table>
### OneWayVectorBasic {#Protocol.OneWayVectorBasic}
#### Request {#Protocol.OneWayVectorBasic_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>vector_uint8</code></td>
<td>
<code>vector&lt;uint8&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_uint16</code></td>
<td>
<code>vector&lt;uint16&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_uint32</code></td>
<td>
<code>vector&lt;uint32&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_uint64</code></td>
<td>
<code>vector&lt;uint64&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_int8</code></td>
<td>
<code>vector&lt;int8&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_int16</code></td>
<td>
<code>vector&lt;int16&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_int32</code></td>
<td>
<code>vector&lt;int32&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_int64</code></td>
<td>
<code>vector&lt;int64&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_float32</code></td>
<td>
<code>vector&lt;float32&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_float64</code></td>
<td>
<code>vector&lt;float64&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_string</code></td>
<td>
<code>vector&lt;string&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_opt_string</code></td>
<td>
<code>vector&lt;string&gt;</code>
</td>
</tr>
</table>
### OneWayVectorCompound {#Protocol.OneWayVectorCompound}
#### Request {#Protocol.OneWayVectorCompound_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>vector_bits</code></td>
<td>
<code>vector&lt;<a class='link' href='#Bits'>Bits</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_enum</code></td>
<td>
<code>vector&lt;<a class='link' href='#Enum'>Enum</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_table</code></td>
<td>
<code>vector&lt;<a class='link' href='#Table'>Table</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_union</code></td>
<td>
<code>vector&lt;<a class='link' href='#Union'>Union</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_opt_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_opt_union</code></td>
<td>
<code>vector&lt;<a class='link' href='#Union'>Union</a>&gt;</code>
</td>
</tr>
</table>
### OneWayVectorOptional {#Protocol.OneWayVectorOptional}
#### Request {#Protocol.OneWayVectorOptional_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>opt_vector_uint8</code></td>
<td>
<code>vector&lt;uint8&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_vector_string</code></td>
<td>
<code>vector&lt;string&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_vector_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_vector_opt_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;?</code>
</td>
</tr>
</table>
### TwoWayArrayBasic {#Protocol.TwoWayArrayBasic}
#### Request {#Protocol.TwoWayArrayBasic_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>array_uint8</code></td>
<td>
<code>uint8[5]</code>
</td>
</tr>
<tr>
<td><code>array_uint16</code></td>
<td>
<code>uint16[5]</code>
</td>
</tr>
<tr>
<td><code>array_uint32</code></td>
<td>
<code>uint32[5]</code>
</td>
</tr>
<tr>
<td><code>array_uint64</code></td>
<td>
<code>uint64[5]</code>
</td>
</tr>
<tr>
<td><code>array_int8</code></td>
<td>
<code>int8[5]</code>
</td>
</tr>
<tr>
<td><code>array_int16</code></td>
<td>
<code>int16[5]</code>
</td>
</tr>
<tr>
<td><code>array_int32</code></td>
<td>
<code>int32[5]</code>
</td>
</tr>
<tr>
<td><code>array_int64</code></td>
<td>
<code>int64[5]</code>
</td>
</tr>
<tr>
<td><code>array_float32</code></td>
<td>
<code>float32[5]</code>
</td>
</tr>
<tr>
<td><code>array_float64</code></td>
<td>
<code>float64[5]</code>
</td>
</tr>
<tr>
<td><code>array_string</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_opt_string</code></td>
<td>
<code>[5]</code>
</td>
</tr>
</table>
#### Response {#Protocol.TwoWayArrayBasic_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>array_uint8</code></td>
<td>
<code>uint8[5]</code>
</td>
</tr>
<tr>
<td><code>array_uint16</code></td>
<td>
<code>uint16[5]</code>
</td>
</tr>
<tr>
<td><code>array_uint32</code></td>
<td>
<code>uint32[5]</code>
</td>
</tr>
<tr>
<td><code>array_uint64</code></td>
<td>
<code>uint64[5]</code>
</td>
</tr>
<tr>
<td><code>array_int8</code></td>
<td>
<code>int8[5]</code>
</td>
</tr>
<tr>
<td><code>array_int16</code></td>
<td>
<code>int16[5]</code>
</td>
</tr>
<tr>
<td><code>array_int32</code></td>
<td>
<code>int32[5]</code>
</td>
</tr>
<tr>
<td><code>array_int64</code></td>
<td>
<code>int64[5]</code>
</td>
</tr>
<tr>
<td><code>array_float32</code></td>
<td>
<code>float32[5]</code>
</td>
</tr>
<tr>
<td><code>array_float64</code></td>
<td>
<code>float64[5]</code>
</td>
</tr>
<tr>
<td><code>array_string</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_opt_string</code></td>
<td>
<code>[5]</code>
</td>
</tr>
</table>
### TwoWayArrayCompound {#Protocol.TwoWayArrayCompound}
#### Request {#Protocol.TwoWayArrayCompound_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>array_bits</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_enum</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_struct</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_table</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_union</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_opt_struct</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_opt_union</code></td>
<td>
<code>[5]</code>
</td>
</tr>
</table>
#### Response {#Protocol.TwoWayArrayCompound_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>array_bits</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_enum</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_struct</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_table</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_union</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_opt_struct</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_opt_union</code></td>
<td>
<code>[5]</code>
</td>
</tr>
</table>
### TwoWayArrayVectorNested {#Protocol.TwoWayArrayVectorNested}
#### Request {#Protocol.TwoWayArrayVectorNested_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>array_array_uint8</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_vector_uint8</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>vector_array_uint8</code></td>
<td>
<code>vector&lt;array&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_vector_uint8</code></td>
<td>
<code>vector&lt;vector&lt;uint8&gt;&gt;</code>
</td>
</tr>
</table>
#### Response {#Protocol.TwoWayArrayVectorNested_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>array_array_uint8</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_vector_uint8</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>vector_array_uint8</code></td>
<td>
<code>vector&lt;array&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_vector_uint8</code></td>
<td>
<code>vector&lt;vector&lt;uint8&gt;&gt;</code>
</td>
</tr>
</table>
### TwoWayBasic {#Protocol.TwoWayBasic}
#### Request {#Protocol.TwoWayBasic_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>uint8</code></td>
<td>
<code>uint8</code>
</td>
</tr>
<tr>
<td><code>uint16</code></td>
<td>
<code>uint16</code>
</td>
</tr>
<tr>
<td><code>uint32</code></td>
<td>
<code>uint32</code>
</td>
</tr>
<tr>
<td><code>uint64</code></td>
<td>
<code>uint64</code>
</td>
</tr>
<tr>
<td><code>int8</code></td>
<td>
<code>int8</code>
</td>
</tr>
<tr>
<td><code>int16</code></td>
<td>
<code>int16</code>
</td>
</tr>
<tr>
<td><code>int32</code></td>
<td>
<code>int32</code>
</td>
</tr>
<tr>
<td><code>int64</code></td>
<td>
<code>int64</code>
</td>
</tr>
<tr>
<td><code>float32</code></td>
<td>
<code>float32</code>
</td>
</tr>
<tr>
<td><code>float64</code></td>
<td>
<code>float64</code>
</td>
</tr>
<tr>
<td><code>string</code></td>
<td>
<code>string</code>
</td>
</tr>
<tr>
<td><code>opt_string</code></td>
<td>
<code>string?</code>
</td>
</tr>
</table>
#### Response {#Protocol.TwoWayBasic_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>uint8</code></td>
<td>
<code>uint8</code>
</td>
</tr>
<tr>
<td><code>uint16</code></td>
<td>
<code>uint16</code>
</td>
</tr>
<tr>
<td><code>uint32</code></td>
<td>
<code>uint32</code>
</td>
</tr>
<tr>
<td><code>uint64</code></td>
<td>
<code>uint64</code>
</td>
</tr>
<tr>
<td><code>int8</code></td>
<td>
<code>int8</code>
</td>
</tr>
<tr>
<td><code>int16</code></td>
<td>
<code>int16</code>
</td>
</tr>
<tr>
<td><code>int32</code></td>
<td>
<code>int32</code>
</td>
</tr>
<tr>
<td><code>int64</code></td>
<td>
<code>int64</code>
</td>
</tr>
<tr>
<td><code>float32</code></td>
<td>
<code>float32</code>
</td>
</tr>
<tr>
<td><code>float64</code></td>
<td>
<code>float64</code>
</td>
</tr>
<tr>
<td><code>string</code></td>
<td>
<code>string</code>
</td>
</tr>
<tr>
<td><code>opt_string</code></td>
<td>
<code>string?</code>
</td>
</tr>
</table>
### TwoWayCompound {#Protocol.TwoWayCompound}
#### Request {#Protocol.TwoWayCompound_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>bits</code></td>
<td>
<code><a class='link' href='#Bits'>Bits</a></code>
</td>
</tr>
<tr>
<td><code>enum</code></td>
<td>
<code><a class='link' href='#Enum'>Enum</a></code>
</td>
</tr>
<tr>
<td><code>struct</code></td>
<td>
<code><a class='link' href='#Struct'>Struct</a></code>
</td>
</tr>
<tr>
<td><code>table</code></td>
<td>
<code><a class='link' href='#Table'>Table</a></code>
</td>
</tr>
<tr>
<td><code>union</code></td>
<td>
<code><a class='link' href='#Union'>Union</a></code>
</td>
</tr>
<tr>
<td><code>opt_struct</code></td>
<td>
<code><a class='link' href='#Struct'>Struct</a>?</code>
</td>
</tr>
<tr>
<td><code>opt_union</code></td>
<td>
<code><a class='link' href='#Union'>Union</a>?</code>
</td>
</tr>
</table>
#### Response {#Protocol.TwoWayCompound_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>bits</code></td>
<td>
<code><a class='link' href='#Bits'>Bits</a></code>
</td>
</tr>
<tr>
<td><code>enum</code></td>
<td>
<code><a class='link' href='#Enum'>Enum</a></code>
</td>
</tr>
<tr>
<td><code>struct</code></td>
<td>
<code><a class='link' href='#Struct'>Struct</a></code>
</td>
</tr>
<tr>
<td><code>table</code></td>
<td>
<code><a class='link' href='#Table'>Table</a></code>
</td>
</tr>
<tr>
<td><code>union</code></td>
<td>
<code><a class='link' href='#Union'>Union</a></code>
</td>
</tr>
<tr>
<td><code>opt_struct</code></td>
<td>
<code><a class='link' href='#Struct'>Struct</a>?</code>
</td>
</tr>
<tr>
<td><code>opt_union</code></td>
<td>
<code><a class='link' href='#Union'>Union</a>?</code>
</td>
</tr>
</table>
### TwoWayResource {#Protocol.TwoWayResource}
#### Request {#Protocol.TwoWayResource_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>handle</code></td>
<td>
<code>handle&lt;handle&gt;</code>
</td>
</tr>
<tr>
<td><code>vmo</code></td>
<td>
<code>handle&lt;vmo&gt;</code>
</td>
</tr>
<tr>
<td><code>client_end</code></td>
<td>
<code><a class='link' href='#Protocol'>Protocol</a></code>
</td>
</tr>
<tr>
<td><code>server_end</code></td>
<td>
<code>server_end&lt;<a class='link' href='#Protocol'>Protocol</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>struct</code></td>
<td>
<code><a class='link' href='#ResourceStruct'>ResourceStruct</a></code>
</td>
</tr>
<tr>
<td><code>table</code></td>
<td>
<code><a class='link' href='#ResourceTable'>ResourceTable</a></code>
</td>
</tr>
<tr>
<td><code>union</code></td>
<td>
<code><a class='link' href='#ResourceUnion'>ResourceUnion</a></code>
</td>
</tr>
<tr>
<td><code>opt_handle</code></td>
<td>
<code>handle&lt;handle&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_vmo</code></td>
<td>
<code>handle&lt;vmo&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_client_end</code></td>
<td>
<code><a class='link' href='#Protocol'>Protocol</a>?</code>
</td>
</tr>
<tr>
<td><code>opt_server_end</code></td>
<td>
<code>server_end&lt;<a class='link' href='#Protocol'>Protocol</a>&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_struct</code></td>
<td>
<code><a class='link' href='#ResourceStruct'>ResourceStruct</a>?</code>
</td>
</tr>
<tr>
<td><code>opt_union</code></td>
<td>
<code><a class='link' href='#ResourceUnion'>ResourceUnion</a>?</code>
</td>
</tr>
<tr>
<td><code>array_handle</code></td>
<td>
<code>handle[5]</code>
</td>
</tr>
<tr>
<td><code>array_vmo</code></td>
<td>
<code>vmo[5]</code>
</td>
</tr>
<tr>
<td><code>array_client_end</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_server_end</code></td>
<td>
<code>test.typesinprotocols/Protocol[5]</code>
</td>
</tr>
<tr>
<td><code>array_struct</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_table</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_union</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>vector_handle</code></td>
<td>
<code>vector&lt;handle&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_vmo</code></td>
<td>
<code>vector&lt;vmo&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_client_end</code></td>
<td>
<code>vector&lt;<a class='link' href='#Protocol'>Protocol</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_server_end</code></td>
<td>
<code>vector&lt;test.typesinprotocols/Protocol&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#ResourceStruct'>ResourceStruct</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_table</code></td>
<td>
<code>vector&lt;<a class='link' href='#ResourceTable'>ResourceTable</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_union</code></td>
<td>
<code>vector&lt;<a class='link' href='#ResourceUnion'>ResourceUnion</a>&gt;</code>
</td>
</tr>
</table>
#### Response {#Protocol.TwoWayResource_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>handle</code></td>
<td>
<code>handle&lt;handle&gt;</code>
</td>
</tr>
<tr>
<td><code>vmo</code></td>
<td>
<code>handle&lt;vmo&gt;</code>
</td>
</tr>
<tr>
<td><code>client_end</code></td>
<td>
<code><a class='link' href='#Protocol'>Protocol</a></code>
</td>
</tr>
<tr>
<td><code>server_end</code></td>
<td>
<code>server_end&lt;<a class='link' href='#Protocol'>Protocol</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>struct</code></td>
<td>
<code><a class='link' href='#ResourceStruct'>ResourceStruct</a></code>
</td>
</tr>
<tr>
<td><code>table</code></td>
<td>
<code><a class='link' href='#ResourceTable'>ResourceTable</a></code>
</td>
</tr>
<tr>
<td><code>union</code></td>
<td>
<code><a class='link' href='#ResourceUnion'>ResourceUnion</a></code>
</td>
</tr>
<tr>
<td><code>opt_handle</code></td>
<td>
<code>handle&lt;handle&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_vmo</code></td>
<td>
<code>handle&lt;vmo&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_client_end</code></td>
<td>
<code><a class='link' href='#Protocol'>Protocol</a>?</code>
</td>
</tr>
<tr>
<td><code>opt_server_end</code></td>
<td>
<code>server_end&lt;<a class='link' href='#Protocol'>Protocol</a>&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_struct</code></td>
<td>
<code><a class='link' href='#ResourceStruct'>ResourceStruct</a>?</code>
</td>
</tr>
<tr>
<td><code>opt_union</code></td>
<td>
<code><a class='link' href='#ResourceUnion'>ResourceUnion</a>?</code>
</td>
</tr>
<tr>
<td><code>array_handle</code></td>
<td>
<code>handle[5]</code>
</td>
</tr>
<tr>
<td><code>array_vmo</code></td>
<td>
<code>vmo[5]</code>
</td>
</tr>
<tr>
<td><code>array_client_end</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_server_end</code></td>
<td>
<code>test.typesinprotocols/Protocol[5]</code>
</td>
</tr>
<tr>
<td><code>array_struct</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_table</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>array_union</code></td>
<td>
<code>[5]</code>
</td>
</tr>
<tr>
<td><code>vector_handle</code></td>
<td>
<code>vector&lt;handle&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_vmo</code></td>
<td>
<code>vector&lt;vmo&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_client_end</code></td>
<td>
<code>vector&lt;<a class='link' href='#Protocol'>Protocol</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_server_end</code></td>
<td>
<code>vector&lt;test.typesinprotocols/Protocol&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#ResourceStruct'>ResourceStruct</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_table</code></td>
<td>
<code>vector&lt;<a class='link' href='#ResourceTable'>ResourceTable</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_union</code></td>
<td>
<code>vector&lt;<a class='link' href='#ResourceUnion'>ResourceUnion</a>&gt;</code>
</td>
</tr>
</table>
### TwoWayVectorBasic {#Protocol.TwoWayVectorBasic}
#### Request {#Protocol.TwoWayVectorBasic_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>vector_uint8</code></td>
<td>
<code>vector&lt;uint8&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_uint16</code></td>
<td>
<code>vector&lt;uint16&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_uint32</code></td>
<td>
<code>vector&lt;uint32&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_uint64</code></td>
<td>
<code>vector&lt;uint64&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_int8</code></td>
<td>
<code>vector&lt;int8&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_int16</code></td>
<td>
<code>vector&lt;int16&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_int32</code></td>
<td>
<code>vector&lt;int32&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_int64</code></td>
<td>
<code>vector&lt;int64&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_float32</code></td>
<td>
<code>vector&lt;float32&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_float64</code></td>
<td>
<code>vector&lt;float64&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_string</code></td>
<td>
<code>vector&lt;string&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_opt_string</code></td>
<td>
<code>vector&lt;string&gt;</code>
</td>
</tr>
</table>
#### Response {#Protocol.TwoWayVectorBasic_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>vector_uint8</code></td>
<td>
<code>vector&lt;uint8&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_uint16</code></td>
<td>
<code>vector&lt;uint16&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_uint32</code></td>
<td>
<code>vector&lt;uint32&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_uint64</code></td>
<td>
<code>vector&lt;uint64&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_int8</code></td>
<td>
<code>vector&lt;int8&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_int16</code></td>
<td>
<code>vector&lt;int16&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_int32</code></td>
<td>
<code>vector&lt;int32&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_int64</code></td>
<td>
<code>vector&lt;int64&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_float32</code></td>
<td>
<code>vector&lt;float32&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_float64</code></td>
<td>
<code>vector&lt;float64&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_string</code></td>
<td>
<code>vector&lt;string&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_opt_string</code></td>
<td>
<code>vector&lt;string&gt;</code>
</td>
</tr>
</table>
### TwoWayVectorCompound {#Protocol.TwoWayVectorCompound}
#### Request {#Protocol.TwoWayVectorCompound_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>vector_bits</code></td>
<td>
<code>vector&lt;<a class='link' href='#Bits'>Bits</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_enum</code></td>
<td>
<code>vector&lt;<a class='link' href='#Enum'>Enum</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_table</code></td>
<td>
<code>vector&lt;<a class='link' href='#Table'>Table</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_union</code></td>
<td>
<code>vector&lt;<a class='link' href='#Union'>Union</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_opt_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_opt_union</code></td>
<td>
<code>vector&lt;<a class='link' href='#Union'>Union</a>&gt;</code>
</td>
</tr>
</table>
#### Response {#Protocol.TwoWayVectorCompound_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>vector_bits</code></td>
<td>
<code>vector&lt;<a class='link' href='#Bits'>Bits</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_enum</code></td>
<td>
<code>vector&lt;<a class='link' href='#Enum'>Enum</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_table</code></td>
<td>
<code>vector&lt;<a class='link' href='#Table'>Table</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_union</code></td>
<td>
<code>vector&lt;<a class='link' href='#Union'>Union</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_opt_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;</code>
</td>
</tr>
<tr>
<td><code>vector_opt_union</code></td>
<td>
<code>vector&lt;<a class='link' href='#Union'>Union</a>&gt;</code>
</td>
</tr>
</table>
### TwoWayVectorOptional {#Protocol.TwoWayVectorOptional}
#### Request {#Protocol.TwoWayVectorOptional_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>opt_vector_uint8</code></td>
<td>
<code>vector&lt;uint8&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_vector_string</code></td>
<td>
<code>vector&lt;string&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_vector_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_vector_opt_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;?</code>
</td>
</tr>
</table>
#### Response {#Protocol.TwoWayVectorOptional_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>opt_vector_uint8</code></td>
<td>
<code>vector&lt;uint8&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_vector_string</code></td>
<td>
<code>vector&lt;string&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_vector_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;?</code>
</td>
</tr>
<tr>
<td><code>opt_vector_opt_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;?</code>
</td>
</tr>
</table>
## **STRUCTS**
### ArrayBasic {#ArrayBasic data-text="ArrayBasic"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=50)*
<table>
<tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr>
<tr id="ArrayBasic.array_uint8">
<td><code>array_uint8</code></td>
<td>
<code>uint8[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayBasic.array_uint16">
<td><code>array_uint16</code></td>
<td>
<code>uint16[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayBasic.array_uint32">
<td><code>array_uint32</code></td>
<td>
<code>uint32[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayBasic.array_uint64">
<td><code>array_uint64</code></td>
<td>
<code>uint64[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayBasic.array_int8">
<td><code>array_int8</code></td>
<td>
<code>int8[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayBasic.array_int16">
<td><code>array_int16</code></td>
<td>
<code>int16[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayBasic.array_int32">
<td><code>array_int32</code></td>
<td>
<code>int32[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayBasic.array_int64">
<td><code>array_int64</code></td>
<td>
<code>int64[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayBasic.array_float32">
<td><code>array_float32</code></td>
<td>
<code>float32[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayBasic.array_float64">
<td><code>array_float64</code></td>
<td>
<code>float64[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayBasic.array_string">
<td><code>array_string</code></td>
<td>
<code>[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayBasic.array_opt_string">
<td><code>array_opt_string</code></td>
<td>
<code>[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
</table>
### ArrayCompound {#ArrayCompound data-text="ArrayCompound"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=65)*
<table>
<tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr>
<tr id="ArrayCompound.array_bits">
<td><code>array_bits</code></td>
<td>
<code>[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayCompound.array_enum">
<td><code>array_enum</code></td>
<td>
<code>[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayCompound.array_struct">
<td><code>array_struct</code></td>
<td>
<code>[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayCompound.array_table">
<td><code>array_table</code></td>
<td>
<code>[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayCompound.array_union">
<td><code>array_union</code></td>
<td>
<code>[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayCompound.array_opt_struct">
<td><code>array_opt_struct</code></td>
<td>
<code>[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayCompound.array_opt_union">
<td><code>array_opt_union</code></td>
<td>
<code>[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
</table>
### ArrayVectorNested {#ArrayVectorNested data-text="ArrayVectorNested"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=111)*
<table>
<tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr>
<tr id="ArrayVectorNested.array_array_uint8">
<td><code>array_array_uint8</code></td>
<td>
<code>[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayVectorNested.array_vector_uint8">
<td><code>array_vector_uint8</code></td>
<td>
<code>[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayVectorNested.vector_array_uint8">
<td><code>vector_array_uint8</code></td>
<td>
<code>vector&lt;array&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="ArrayVectorNested.vector_vector_uint8">
<td><code>vector_vector_uint8</code></td>
<td>
<code>vector&lt;vector&lt;uint8&gt;&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
</table>
### Basic {#Basic data-text="Basic"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=25)*
<table>
<tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr>
<tr id="Basic.uint8">
<td><code>uint8</code></td>
<td>
<code>uint8</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Basic.uint16">
<td><code>uint16</code></td>
<td>
<code>uint16</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Basic.uint32">
<td><code>uint32</code></td>
<td>
<code>uint32</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Basic.uint64">
<td><code>uint64</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Basic.int8">
<td><code>int8</code></td>
<td>
<code>int8</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Basic.int16">
<td><code>int16</code></td>
<td>
<code>int16</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Basic.int32">
<td><code>int32</code></td>
<td>
<code>int32</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Basic.int64">
<td><code>int64</code></td>
<td>
<code>int64</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Basic.float32">
<td><code>float32</code></td>
<td>
<code>float32</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Basic.float64">
<td><code>float64</code></td>
<td>
<code>float64</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Basic.string">
<td><code>string</code></td>
<td>
<code>string</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Basic.opt_string">
<td><code>opt_string</code></td>
<td>
<code>string?</code>
</td>
<td></td>
<td>No default</td>
</tr>
</table>
### Compound {#Compound data-text="Compound"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=40)*
<table>
<tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr>
<tr id="Compound.bits">
<td><code>bits</code></td>
<td>
<code><a class='link' href='#Bits'>Bits</a></code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Compound.enum">
<td><code>enum</code></td>
<td>
<code><a class='link' href='#Enum'>Enum</a></code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Compound.struct">
<td><code>struct</code></td>
<td>
<code><a class='link' href='#Struct'>Struct</a></code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Compound.table">
<td><code>table</code></td>
<td>
<code><a class='link' href='#Table'>Table</a></code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Compound.union">
<td><code>union</code></td>
<td>
<code><a class='link' href='#Union'>Union</a></code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Compound.opt_struct">
<td><code>opt_struct</code></td>
<td>
<code><a class='link' href='#Struct'>Struct</a>?</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Compound.opt_union">
<td><code>opt_union</code></td>
<td>
<code><a class='link' href='#Union'>Union</a>?</code>
</td>
<td></td>
<td>No default</td>
</tr>
</table>
### Resource [resource](/fuchsia-src/reference/fidl/language/language.md#value-vs-resource){:.fidl-attribute} {#Resource data-text="Resource"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=118)*
<table>
<tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr>
<tr id="Resource.handle">
<td><code>handle</code></td>
<td>
<code>handle&lt;handle&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.vmo">
<td><code>vmo</code></td>
<td>
<code>handle&lt;vmo&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.client_end">
<td><code>client_end</code></td>
<td>
<code><a class='link' href='#Protocol'>Protocol</a></code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.server_end">
<td><code>server_end</code></td>
<td>
<code>server_end&lt;<a class='link' href='#Protocol'>Protocol</a>&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.struct">
<td><code>struct</code></td>
<td>
<code><a class='link' href='#ResourceStruct'>ResourceStruct</a></code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.table">
<td><code>table</code></td>
<td>
<code><a class='link' href='#ResourceTable'>ResourceTable</a></code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.union">
<td><code>union</code></td>
<td>
<code><a class='link' href='#ResourceUnion'>ResourceUnion</a></code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.opt_handle">
<td><code>opt_handle</code></td>
<td>
<code>handle&lt;handle&gt;?</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.opt_vmo">
<td><code>opt_vmo</code></td>
<td>
<code>handle&lt;vmo&gt;?</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.opt_client_end">
<td><code>opt_client_end</code></td>
<td>
<code><a class='link' href='#Protocol'>Protocol</a>?</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.opt_server_end">
<td><code>opt_server_end</code></td>
<td>
<code>server_end&lt;<a class='link' href='#Protocol'>Protocol</a>&gt;?</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.opt_struct">
<td><code>opt_struct</code></td>
<td>
<code><a class='link' href='#ResourceStruct'>ResourceStruct</a>?</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.opt_union">
<td><code>opt_union</code></td>
<td>
<code><a class='link' href='#ResourceUnion'>ResourceUnion</a>?</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.array_handle">
<td><code>array_handle</code></td>
<td>
<code>handle[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.array_vmo">
<td><code>array_vmo</code></td>
<td>
<code>vmo[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.array_client_end">
<td><code>array_client_end</code></td>
<td>
<code>[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.array_server_end">
<td><code>array_server_end</code></td>
<td>
<code>test.typesinprotocols/Protocol[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.array_struct">
<td><code>array_struct</code></td>
<td>
<code>[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.array_table">
<td><code>array_table</code></td>
<td>
<code>[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.array_union">
<td><code>array_union</code></td>
<td>
<code>[5]</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.vector_handle">
<td><code>vector_handle</code></td>
<td>
<code>vector&lt;handle&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.vector_vmo">
<td><code>vector_vmo</code></td>
<td>
<code>vector&lt;vmo&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.vector_client_end">
<td><code>vector_client_end</code></td>
<td>
<code>vector&lt;<a class='link' href='#Protocol'>Protocol</a>&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.vector_server_end">
<td><code>vector_server_end</code></td>
<td>
<code>vector&lt;test.typesinprotocols/Protocol&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.vector_struct">
<td><code>vector_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#ResourceStruct'>ResourceStruct</a>&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.vector_table">
<td><code>vector_table</code></td>
<td>
<code>vector&lt;<a class='link' href='#ResourceTable'>ResourceTable</a>&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="Resource.vector_union">
<td><code>vector_union</code></td>
<td>
<code>vector&lt;<a class='link' href='#ResourceUnion'>ResourceUnion</a>&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
</table>
### ResourceStruct [resource](/fuchsia-src/reference/fidl/language/language.md#value-vs-resource){:.fidl-attribute} {#ResourceStruct data-text="ResourceStruct"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=19)*
&lt;EMPTY&gt;
### Struct {#Struct data-text="Struct"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=14)*
&lt;EMPTY&gt;
### VectorBasic {#VectorBasic data-text="VectorBasic"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=75)*
<table>
<tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr>
<tr id="VectorBasic.vector_uint8">
<td><code>vector_uint8</code></td>
<td>
<code>vector&lt;uint8&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorBasic.vector_uint16">
<td><code>vector_uint16</code></td>
<td>
<code>vector&lt;uint16&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorBasic.vector_uint32">
<td><code>vector_uint32</code></td>
<td>
<code>vector&lt;uint32&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorBasic.vector_uint64">
<td><code>vector_uint64</code></td>
<td>
<code>vector&lt;uint64&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorBasic.vector_int8">
<td><code>vector_int8</code></td>
<td>
<code>vector&lt;int8&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorBasic.vector_int16">
<td><code>vector_int16</code></td>
<td>
<code>vector&lt;int16&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorBasic.vector_int32">
<td><code>vector_int32</code></td>
<td>
<code>vector&lt;int32&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorBasic.vector_int64">
<td><code>vector_int64</code></td>
<td>
<code>vector&lt;int64&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorBasic.vector_float32">
<td><code>vector_float32</code></td>
<td>
<code>vector&lt;float32&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorBasic.vector_float64">
<td><code>vector_float64</code></td>
<td>
<code>vector&lt;float64&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorBasic.vector_string">
<td><code>vector_string</code></td>
<td>
<code>vector&lt;string&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorBasic.vector_opt_string">
<td><code>vector_opt_string</code></td>
<td>
<code>vector&lt;string&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
</table>
### VectorCompound {#VectorCompound data-text="VectorCompound"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=90)*
<table>
<tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr>
<tr id="VectorCompound.vector_bits">
<td><code>vector_bits</code></td>
<td>
<code>vector&lt;<a class='link' href='#Bits'>Bits</a>&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorCompound.vector_enum">
<td><code>vector_enum</code></td>
<td>
<code>vector&lt;<a class='link' href='#Enum'>Enum</a>&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorCompound.vector_struct">
<td><code>vector_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorCompound.vector_table">
<td><code>vector_table</code></td>
<td>
<code>vector&lt;<a class='link' href='#Table'>Table</a>&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorCompound.vector_union">
<td><code>vector_union</code></td>
<td>
<code>vector&lt;<a class='link' href='#Union'>Union</a>&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorCompound.vector_opt_struct">
<td><code>vector_opt_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorCompound.vector_opt_union">
<td><code>vector_opt_union</code></td>
<td>
<code>vector&lt;<a class='link' href='#Union'>Union</a>&gt;</code>
</td>
<td></td>
<td>No default</td>
</tr>
</table>
### VectorOptional {#VectorOptional data-text="VectorOptional"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=100)*
<table>
<tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr>
<tr id="VectorOptional.opt_vector_uint8">
<td><code>opt_vector_uint8</code></td>
<td>
<code>vector&lt;uint8&gt;?</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorOptional.opt_vector_string">
<td><code>opt_vector_string</code></td>
<td>
<code>vector&lt;string&gt;?</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorOptional.opt_vector_struct">
<td><code>opt_vector_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;?</code>
</td>
<td></td>
<td>No default</td>
</tr>
<tr id="VectorOptional.opt_vector_opt_struct">
<td><code>opt_vector_opt_struct</code></td>
<td>
<code>vector&lt;<a class='link' href='#Struct'>Struct</a>&gt;?</code>
</td>
<td></td>
<td>No default</td>
</tr>
</table>
## **ENUMS**
### Enum [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Enum data-text="Enum"}
Type: <code>uint32</code>
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=11)*
<table>
<tr><th>Name</th><th>Value</th><th>Description</th></tr>
<tr id="Enum.VAL">
<td><h3 id="Enum.VAL" class="add-link hide-from-toc">VAL</h3></td>
<td><code>1</code></td>
<td></td>
</tr>
</table>
## **TABLES**
### ResourceTable [resource](/fuchsia-src/reference/fidl/language/language.md#value-vs-resource){:.fidl-attribute} {#ResourceTable data-text="ResourceTable"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=20)*
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
</table>
### Table {#Table data-text="Table"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=15)*
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
</table>
## **UNIONS**
### Protocol_ErrorArrayBasic_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Protocol_ErrorArrayBasic_Result data-text="Protocol_ErrorArrayBasic_Result"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=164)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="Protocol_ErrorArrayBasic_Result.response">
<td><h3 id="Protocol_ErrorArrayBasic_Result.response" class="add-link hide-from-toc">1</h3></td>
<td><code>response</code></td>
<td>
<code><a class='link' href='#ArrayBasic'>ArrayBasic</a></code>
</td>
<td></td>
</tr>
<tr id="Protocol_ErrorArrayBasic_Result.err">
<td><h3 id="Protocol_ErrorArrayBasic_Result.err" class="add-link hide-from-toc">2</h3></td>
<td><code>err</code></td>
<td>
<code>uint32</code>
</td>
<td></td>
</tr>
</table>
### Protocol_ErrorArrayCompound_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Protocol_ErrorArrayCompound_Result data-text="Protocol_ErrorArrayCompound_Result"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=169)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="Protocol_ErrorArrayCompound_Result.response">
<td><h3 id="Protocol_ErrorArrayCompound_Result.response" class="add-link hide-from-toc">1</h3></td>
<td><code>response</code></td>
<td>
<code><a class='link' href='#ArrayCompound'>ArrayCompound</a></code>
</td>
<td></td>
</tr>
<tr id="Protocol_ErrorArrayCompound_Result.err">
<td><h3 id="Protocol_ErrorArrayCompound_Result.err" class="add-link hide-from-toc">2</h3></td>
<td><code>err</code></td>
<td>
<code>uint32</code>
</td>
<td></td>
</tr>
</table>
### Protocol_ErrorArrayVectorNested_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Protocol_ErrorArrayVectorNested_Result data-text="Protocol_ErrorArrayVectorNested_Result"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=189)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="Protocol_ErrorArrayVectorNested_Result.response">
<td><h3 id="Protocol_ErrorArrayVectorNested_Result.response" class="add-link hide-from-toc">1</h3></td>
<td><code>response</code></td>
<td>
<code><a class='link' href='#ArrayVectorNested'>ArrayVectorNested</a></code>
</td>
<td></td>
</tr>
<tr id="Protocol_ErrorArrayVectorNested_Result.err">
<td><h3 id="Protocol_ErrorArrayVectorNested_Result.err" class="add-link hide-from-toc">2</h3></td>
<td><code>err</code></td>
<td>
<code>uint32</code>
</td>
<td></td>
</tr>
</table>
### Protocol_ErrorBasic_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Protocol_ErrorBasic_Result data-text="Protocol_ErrorBasic_Result"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=154)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="Protocol_ErrorBasic_Result.response">
<td><h3 id="Protocol_ErrorBasic_Result.response" class="add-link hide-from-toc">1</h3></td>
<td><code>response</code></td>
<td>
<code><a class='link' href='#Basic'>Basic</a></code>
</td>
<td></td>
</tr>
<tr id="Protocol_ErrorBasic_Result.err">
<td><h3 id="Protocol_ErrorBasic_Result.err" class="add-link hide-from-toc">2</h3></td>
<td><code>err</code></td>
<td>
<code>uint32</code>
</td>
<td></td>
</tr>
</table>
### Protocol_ErrorCompound_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Protocol_ErrorCompound_Result data-text="Protocol_ErrorCompound_Result"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=159)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="Protocol_ErrorCompound_Result.response">
<td><h3 id="Protocol_ErrorCompound_Result.response" class="add-link hide-from-toc">1</h3></td>
<td><code>response</code></td>
<td>
<code><a class='link' href='#Compound'>Compound</a></code>
</td>
<td></td>
</tr>
<tr id="Protocol_ErrorCompound_Result.err">
<td><h3 id="Protocol_ErrorCompound_Result.err" class="add-link hide-from-toc">2</h3></td>
<td><code>err</code></td>
<td>
<code>uint32</code>
</td>
<td></td>
</tr>
</table>
### Protocol_ErrorResource_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} [resource](/fuchsia-src/reference/fidl/language/language.md#value-vs-resource){:.fidl-attribute} {#Protocol_ErrorResource_Result data-text="Protocol_ErrorResource_Result"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=194)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="Protocol_ErrorResource_Result.response">
<td><h3 id="Protocol_ErrorResource_Result.response" class="add-link hide-from-toc">1</h3></td>
<td><code>response</code></td>
<td>
<code><a class='link' href='#Resource'>Resource</a></code>
</td>
<td></td>
</tr>
<tr id="Protocol_ErrorResource_Result.err">
<td><h3 id="Protocol_ErrorResource_Result.err" class="add-link hide-from-toc">2</h3></td>
<td><code>err</code></td>
<td>
<code>uint32</code>
</td>
<td></td>
</tr>
</table>
### Protocol_ErrorVectorBasic_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Protocol_ErrorVectorBasic_Result data-text="Protocol_ErrorVectorBasic_Result"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=174)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="Protocol_ErrorVectorBasic_Result.response">
<td><h3 id="Protocol_ErrorVectorBasic_Result.response" class="add-link hide-from-toc">1</h3></td>
<td><code>response</code></td>
<td>
<code><a class='link' href='#VectorBasic'>VectorBasic</a></code>
</td>
<td></td>
</tr>
<tr id="Protocol_ErrorVectorBasic_Result.err">
<td><h3 id="Protocol_ErrorVectorBasic_Result.err" class="add-link hide-from-toc">2</h3></td>
<td><code>err</code></td>
<td>
<code>uint32</code>
</td>
<td></td>
</tr>
</table>
### Protocol_ErrorVectorCompound_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Protocol_ErrorVectorCompound_Result data-text="Protocol_ErrorVectorCompound_Result"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=179)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="Protocol_ErrorVectorCompound_Result.response">
<td><h3 id="Protocol_ErrorVectorCompound_Result.response" class="add-link hide-from-toc">1</h3></td>
<td><code>response</code></td>
<td>
<code><a class='link' href='#VectorCompound'>VectorCompound</a></code>
</td>
<td></td>
</tr>
<tr id="Protocol_ErrorVectorCompound_Result.err">
<td><h3 id="Protocol_ErrorVectorCompound_Result.err" class="add-link hide-from-toc">2</h3></td>
<td><code>err</code></td>
<td>
<code>uint32</code>
</td>
<td></td>
</tr>
</table>
### Protocol_ErrorVectorOptional_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Protocol_ErrorVectorOptional_Result data-text="Protocol_ErrorVectorOptional_Result"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=184)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="Protocol_ErrorVectorOptional_Result.response">
<td><h3 id="Protocol_ErrorVectorOptional_Result.response" class="add-link hide-from-toc">1</h3></td>
<td><code>response</code></td>
<td>
<code><a class='link' href='#VectorOptional'>VectorOptional</a></code>
</td>
<td></td>
</tr>
<tr id="Protocol_ErrorVectorOptional_Result.err">
<td><h3 id="Protocol_ErrorVectorOptional_Result.err" class="add-link hide-from-toc">2</h3></td>
<td><code>err</code></td>
<td>
<code>uint32</code>
</td>
<td></td>
</tr>
</table>
### ResourceUnion [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} [resource](/fuchsia-src/reference/fidl/language/language.md#value-vs-resource){:.fidl-attribute} {#ResourceUnion data-text="ResourceUnion"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=21)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="ResourceUnion.b">
<td><h3 id="ResourceUnion.b" class="add-link hide-from-toc">1</h3></td>
<td><code>b</code></td>
<td>
<code>bool</code>
</td>
<td></td>
</tr>
</table>
### Union [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Union data-text="Union"}
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=16)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="Union.b">
<td><h3 id="Union.b" class="add-link hide-from-toc">1</h3></td>
<td><code>b</code></td>
<td>
<code>bool</code>
</td>
<td></td>
</tr>
</table>
## **BITS**
### Bits [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Bits data-text="Bits"}
Type: <code>uint32</code>
*Defined in [test.typesinprotocols/types_in_protocols.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/types_in_protocols.test.fidl;l=8)*
<table>
<tr><th>Name</th><th>Value</th><th>Description</th></tr>
<tr id="Bits.VAL">
<td><h3 id="Bits.VAL" class="add-link hide-from-toc">VAL</h3></td>
<td>1</td>
<td></td>
</tr>
</table>