[TOC]

# fidl.test.consts






## **ENUMS**

### EnumType {#EnumType}
Type: <code>int32</code>

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



<table>
    <tr><th>Name</th><th>Value</th><th>Description</th></tr><tr id="EnumType.VALUE">
            <td><code>VALUE</code></td>
            <td><code>1</code></td>
            <td></td>
        </tr><tr id="EnumType.true">
            <td><code>true</code></td>
            <td><code>2</code></td>
            <td></td>
        </tr></table>







## **BITS**

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

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



<table>
    <tr><th>Name</th><th>Value</th><th>Description</th></tr><tr id="BitsType.VALUE">
            <td>VALUE</td>
            <td>1</td>
            <td></td>
        </tr><tr id="BitsType.true">
            <td>true</td>
            <td>2</td>
            <td></td>
        </tr></table>



## **CONSTANTS**

<table>
    <tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr><tr id="ANSWER">
            <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/consts.test.fidl;l=5">ANSWER</a></td>
            <td>
                    <code>42</code>
                </td>
                <td><code>uint16</code></td>
            <td></td>
        </tr>
    <tr id="ANSWER_IN_BINARY">
            <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/consts.test.fidl;l=6">ANSWER_IN_BINARY</a></td>
            <td>
                    <code>42</code>
                </td>
                <td><code>uint16</code></td>
            <td></td>
        </tr>
    <tr id="CONVERSION_FACTOR">
            <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/consts.test.fidl;l=12">CONVERSION_FACTOR</a></td>
            <td>
                    <code>1.41421</code>
                </td>
                <td><code>float64</code></td>
            <td></td>
        </tr>
    <tr id="DIAMOND">
            <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/consts.test.fidl;l=8">DIAMOND</a></td>
            <td>
                    <code>1746410393481133080</code>
                </td>
                <td><code>uint64</code></td>
            <td></td>
        </tr>
    <tr id="ENABLED_FLAG">
            <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/consts.test.fidl;l=3">ENABLED_FLAG</a></td>
            <td>
                    <code>true</code>
                </td>
                <td><code>bool</code></td>
            <td></td>
        </tr>
    <tr id="FUCHSIA">
            <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/consts.test.fidl;l=9">FUCHSIA</a></td>
            <td>
                    <code>4054509061583223046</code>
                </td>
                <td><code>uint64</code></td>
            <td></td>
        </tr>
    <tr id="MIN_TEMP">
            <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/consts.test.fidl;l=11">MIN_TEMP</a></td>
            <td>
                    <code>-273.15</code>
                </td>
                <td><code>float32</code></td>
            <td></td>
        </tr>
    <tr id="OFFSET">
            <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/consts.test.fidl;l=4">OFFSET</a></td>
            <td>
                    <code>-33</code>
                </td>
                <td><code>int8</code></td>
            <td></td>
        </tr>
    <tr id="POPULATION_USA_2018">
            <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/consts.test.fidl;l=7">POPULATION_USA_2018</a></td>
            <td>
                    <code>330000000</code>
                </td>
                <td><code>uint32</code></td>
            <td></td>
        </tr>
    <tr id="USERNAME">
            <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/consts.test.fidl;l=10">USERNAME</a></td>
            <td><code>&quot;squeenze&quot;</code></td>
                    <td><code>String</code></td>
            <td></td>
        </tr>
    <tr id="bitsPrimitiveTrue">
            <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/consts.test.fidl;l=30">bitsPrimitiveTrue</a></td>
            <td>
                    <code><a class='link' href='#BitsType.true'>BitsType.true</a></code>
                </td>
                <td><code>int32</code></td>
            <td></td>
        </tr>
    <tr id="bitsPrimitiveVal">
            <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/consts.test.fidl;l=28">bitsPrimitiveVal</a></td>
            <td>
                    <code><a class='link' href='#BitsType.VALUE'>BitsType.VALUE</a></code>
                </td>
                <td><code>int32</code></td>
            <td></td>
        </tr>
    <tr id="bitsTrue">
            <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/consts.test.fidl;l=29">bitsTrue</a></td>
            
            <td></td>
        </tr>
    <tr id="bitsVal">
            <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/consts.test.fidl;l=27">bitsVal</a></td>
            
            <td></td>
        </tr>
    <tr id="enumPrimitiveTrue">
            <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/consts.test.fidl;l=21">enumPrimitiveTrue</a></td>
            <td>
                    <code><a class='link' href='#EnumType.true'>EnumType.true</a></code>
                </td>
                <td><code>int32</code></td>
            <td></td>
        </tr>
    <tr id="enumPrimitiveVal">
            <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/consts.test.fidl;l=19">enumPrimitiveVal</a></td>
            <td>
                    <code><a class='link' href='#EnumType.VALUE'>EnumType.VALUE</a></code>
                </td>
                <td><code>int32</code></td>
            <td></td>
        </tr>
    <tr id="enumTrue">
            <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/consts.test.fidl;l=20">enumTrue</a></td>
            
            <td></td>
        </tr>
    <tr id="enumVal">
            <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/master:tools/fidl/fidlc/testdata/consts.test.fidl;l=18">enumVal</a></td>
            
            <td></td>
        </tr>
    
</table>



