// 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;

/// 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|.
struct ViewHolderToken {
    handle<eventpair> value;
};

/// 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|.
struct ViewToken {
    handle<eventpair> value;
};
