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

using zx;

/// A node for interacting with the kernel debug log.
/// It may be manipulated via the debuglog object returned from
/// the `DebuglogInfo` member in [`fuchsia.io2/Representation`].
protocol Debuglog {
    compose Node;
};

/// The debuglog representation of a node.
/// The selection of this variant in [`Representation`] implies that the
/// connection speaks the [`fuchsia.io2/Debuglog`] protocol.
type DebuglogInfo = resource table {
    /// The backing debuglog kernel object.
    1: debuglog zx.handle:LOG;
};
