library fidl.test.handlesintypes;

// 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;
    VMO = 3;
};

resource_definition handle : uint32 {
    properties {
        obj_type subtype;
    };
};

resource table TableWithHandle {
    1: handle:VMO h;
};

flexible resource union UnionWithHandle {
    1: handle:VMO h;
};

resource struct HandlesInTypes {
    handle:VMO normal_handle;

    vector<handle:VMO> handle_in_vec;
    array<handle:VMO>:5 handle_in_array;
    vector<array<handle:VMO>:5> handle_in_mixed_vec_array;

    TableWithHandle table_with_handle;
    UnionWithHandle union_with_handle;
};
