[TOC]

# fidl.test.bindingsdenylist


## **PROTOCOLS**

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


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


### LibfuzzerNeedsNonemptyProtocol {#fidl.test.bindingsdenylist/OnlyLibfuzzerAndDeps.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://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/bindings_denylist.test.fidl;l=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://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/bindings_denylist.test.fidl;l=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://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/bindings_denylist.test.fidl;l=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://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/bindings_denylist.test.fidl;l=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://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/bindings_denylist.test.fidl;l=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://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/bindings_denylist.test.fidl;l=10">AllBindings</a></td>
            <td>
                    <code>0</code>
                </td>
                <td><code>uint32</code></td>
            <td></td>
        </tr>
    
</table>



