[TOC]

# fidl.test.emptystruct


## **PROTOCOLS**

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


### Receive {#fidl.test.emptystruct/EmptyProtocol.Receive}




#### Response
<table>
    <tr><th>Name</th><th>Type</th></tr>
    <tr>
            <td><code>e</code></td>
            <td>
                <code><a class='link' href='#Empty'>Empty</a></code>
            </td>
        </tr></table>

### Send {#fidl.test.emptystruct/EmptyProtocol.Send}


#### Request
<table>
    <tr><th>Name</th><th>Type</th></tr>
    <tr>
            <td><code>e</code></td>
            <td>
                <code><a class='link' href='#Empty'>Empty</a></code>
            </td>
        </tr></table>



### SendAndReceive {#fidl.test.emptystruct/EmptyProtocol.SendAndReceive}


#### Request
<table>
    <tr><th>Name</th><th>Type</th></tr>
    <tr>
            <td><code>e</code></td>
            <td>
                <code><a class='link' href='#Empty'>Empty</a></code>
            </td>
        </tr></table>


#### Response
<table>
    <tr><th>Name</th><th>Type</th></tr>
    <tr>
            <td><code>e</code></td>
            <td>
                <code><a class='link' href='#Empty'>Empty</a></code>
            </td>
        </tr></table>



## **STRUCTS**

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



<table>
    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr>
</table>













