| // Copyright 2020 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. | 
 |  | 
 | library conformance; | 
 |  | 
 | // TODO(fxbug.dev/36441): Allow bindings to compile on host with handles. | 
 |  | 
 | [BindingsDenylist = "llcpp"] | 
 | resource struct SingleHandle { | 
 |     handle h; | 
 | }; | 
 |  | 
 | [BindingsDenylist = "llcpp"] | 
 | resource struct SingleOptionalHandle { | 
 |     handle? h; | 
 | }; | 
 |  | 
 | [BindingsDenylist = "llcpp"] | 
 | resource struct ArrayOfHandles { | 
 |     array<handle>:3 a; | 
 | }; | 
 |  | 
 | [BindingsDenylist = "llcpp"] | 
 | resource struct ArrayOfOptionalHandles { | 
 |     array<handle?>:3 a; | 
 | }; | 
 |  | 
 | [BindingsDenylist = "llcpp"] | 
 | resource struct VectorOfHandles { | 
 |     vector<handle> v; | 
 | }; | 
 |  | 
 | [BindingsDenylist = "llcpp"] | 
 | resource struct VectorOfOptionalHandles { | 
 |     vector<handle?> v; | 
 | }; | 
 |  | 
 | // This is not a reference to library zx to avoid complexity in the test data. | 
 | // A local handle is defined here that contains subtypes that this test cares | 
 | // about. | 
 | enum obj_type : uint32 { | 
 |     NONE = 0; | 
 |     CHANNEL = 4; | 
 |     EVENT = 5; | 
 | }; | 
 |  | 
 | resource_definition handle : uint32 { | 
 |     properties { | 
 |         obj_type subtype; | 
 |     }; | 
 | }; | 
 |  | 
 | [BindingsDenylist = "llcpp"] | 
 | resource struct MultipleHandleSubtypes { | 
 |     handle untyped; | 
 |     handle:EVENT event; | 
 |     handle:CHANNEL channel; | 
 | }; | 
 |  | 
 | resource table ReservedFieldTable { | 
 |     1: reserved; | 
 | }; | 
 |  | 
 | resource struct ReservedFieldTableStruct { | 
 |     ReservedFieldTable table; | 
 | }; |