chromium/mojo/public/interfaces/bindings/native_struct.mojom

// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

[JavaPackage="org.chromium.mojo.native_types"]
module mojo.native;

enum SerializedHandleType {
  MOJO_HANDLE,
  PLATFORM_FILE,
  WIN_HANDLE,
  MACH_PORT,
  FUCHSIA_HANDLE,
};

struct SerializedHandle {
  handle the_handle;
  SerializedHandleType type;
};

[CustomSerializer]
struct NativeStruct {
  array<uint8> data;
  array<SerializedHandle>? handles;
};