// Copyright 2019 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 fuchsia.ui.views;

using zx;

/// Token that uniquely identifies an attachment point for a `View` in the
/// global scene graph.  Each `ViewHolderToken` has exactly one corresponding
/// `ViewToken`.
///
/// A Scenic client can reference contents from another client by creating a
/// `ViewHolder` resource using this token.  The other client must also create
/// a `View` resource using the corresponding `ViewToken`.
type ViewHolderToken = resource struct {
    value zx.Handle:EVENTPAIR;
};

/// Token that uniquely identifies a `View`, which is the root point for a
/// subgraph in the global scene graph. Each `ViewToken` has exactly one
/// corresponding `ViewHolderToken`.
///
/// A Scenic client can have its contents referenced from another client by
/// creating a `View` resource using this token.  The other client must also
/// create a `ViewHolder` resource using the corresponding `ViewHolderToken`.
type ViewToken = resource struct {
    value zx.Handle:EVENTPAIR;
};
