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

/// Auxiliary data for the POSIX socket representation of a node.
/// The selection of this variant in [`Representation`] implies that the
/// connection speaks the [`fuchsia.posix.socket/Control`] protocol.
resource table PosixSocketInfo {
    /// The backing transport for the socket.
    /// The rights on this socket should correspond to the rights on the
    /// node connection.
    1: zx.handle:SOCKET socket;
};
