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

/// Refers to the role of a Bluetooth device (local or peer) in a physical channel piconet. See
/// [Bluetooth Vocabulary Guide](https://cs.opensource.google/fuchsia/fuchsia/+/main:src/connectivity/bluetooth/docs/vocabulary.md)
/// for more information.
type ConnectionRole = strict enum {
    /// The role of the device that defines the piconet physical channel in BR/EDR or the
    /// "initiating" device in LE.
    LEADER = 1;

    /// The role of a device that synchronizes to the piconet physical channel in BR/EDR or the
    /// "advertising" device in LE.
    FOLLOWER = 2;
};
