// Copyright 2022 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// GENERATED FILE: Regen with "fx regen_fidl_benchmark_suite"

// Union with 1 possible tag that has 1st tag set
benchmark("Union/LastSet/1") {
    value = Union1Struct{
        u: Union1{
            field1: 1,
        },
    },
}

// Union with 16 possible tags that has 16th tag set
benchmark("Union/LastSet/16") {
    value = Union16Struct{
        u: Union16{
            field16: 1,
        },
    },
}

// Union with 256 possible tags that has 256th tag set
benchmark("Union/LastSet/256") {
    value = Union256Struct{
        u: Union256{
            field256: 1,
        },
    },
}
