[TOC]

# fidl.test.bindingsdenylist


## **PROTOCOLS**

## OnlyLibfuzzer {#OnlyLibfuzzer}
*Defined in [fidl.test.bindingsdenylist/bindings_denylist.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/tools/fidl/testdata/bindings_denylist.test.fidl#36)*


### LibfuzzerNeedsNonemptyProtocol {#fidl.test.bindingsdenylist/OnlyLibfuzzer.LibfuzzerNeedsNonemptyProtocol}


#### Request
<table>
    <tr><th>Name</th><th>Type</th></tr>
    </table>


#### Response
<table>
    <tr><th>Name</th><th>Type</th></tr>
    </table>



## **STRUCTS**

### OnlyGo {#OnlyGo}
*Defined in [fidl.test.bindingsdenylist/bindings_denylist.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/tools/fidl/testdata/bindings_denylist.test.fidl#23)*



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



## **ENUMS**

### OnlyDart {#OnlyDart}
Type: <code>uint32</code>

*Defined in [fidl.test.bindingsdenylist/bindings_denylist.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/tools/fidl/testdata/bindings_denylist.test.fidl#18)*



<table>
    <tr><th>Name</th><th>Value</th><th>Description</th></tr><tr id="OnlyDart.A">
            <td><code>A</code></td>
            <td><code>1</code></td>
            <td></td>
        </tr></table>



## **TABLES**

### OnlyRust {#OnlyRust}


*Defined in [fidl.test.bindingsdenylist/bindings_denylist.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/tools/fidl/testdata/bindings_denylist.test.fidl#27)*



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



## **UNIONS**

### OnlyLlcpp {#OnlyLlcpp}
*Defined in [fidl.test.bindingsdenylist/bindings_denylist.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/tools/fidl/testdata/bindings_denylist.test.fidl#31)*


<table>
    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr id="OnlyLlcpp.x">
            <td><code>x</code></td>
            <td>
                <code>uint32</code>
            </td>
            <td></td>
        </tr></table>



## **BITS**

### OnlySyzkaller {#OnlySyzkaller}
Type: <code>uint32</code>

*Defined in [fidl.test.bindingsdenylist/bindings_denylist.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/tools/fidl/testdata/bindings_denylist.test.fidl#13)*



<table>
    <tr><th>Name</th><th>Value</th><th>Description</th></tr><tr id="OnlySyzkaller.A">
            <td>A</td>
            <td>1</td>
            <td></td>
        </tr></table>



## **CONSTANTS**

<table>
    <tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr><tr id="AllBindings">
            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/tools/fidl/testdata/bindings_denylist.test.fidl#10">AllBindings</a></td>
            <td>
                    <code>0</code>
                </td>
                <td><code>uint32</code></td>
            <td></td>
        </tr>
    
</table>



