// Copyright 2017 The Chromium Authors. All rights reserved.
// 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;

struct SerializedHandle {
  handle the_handle;

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

  Type type;
};

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