// Copyright 2024 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.hardware.display;

/// Type of the internal value in [`LayerId`].
alias LayerIdValue = uint64;

/// Identifies a layer resource owned by a Display Coordinator client.
///
/// [`fuchsia.hardware.display.types/INVALID_DISP_ID`] represents an invalid
/// value.
///
/// Values are managed by [`fuchsia.hardware.display/Coordinator`] clients, to
/// facilitate feed-forward dataflow.
///
/// Valid values uniquely identify "live" layers within a Display Coordinator
/// connection. The identifier of a layer destroyed via
/// [`fuchsia.hardware.display/Coordinator.DestroyLayer`] can be reused in a
/// subsequent [`fuchsia.hardware.display/Coordinator.CreateLayer`] call.
type LayerId = struct {
    value LayerIdValue;
};
