blob: acc16c44a6f919f6d804d05e35ccc0e4e4a81a3e [file] [log] [blame]
// Copyright 2022 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.
#ifndef SRC_CONNECTIVITY_BLUETOOTH_CORE_BT_HOST_SM_ERROR_H_
#define SRC_CONNECTIVITY_BLUETOOTH_CORE_BT_HOST_SM_ERROR_H_
#include <lib/fit/function.h>
#include "src/connectivity/bluetooth/core/bt-host/common/error.h"
#include "src/connectivity/bluetooth/core/bt-host/sm/smp.h"
namespace bt {
namespace sm {
using Error = Error<bt::sm::ErrorCode>;
template <typename... V>
using Result = fitx::result<bt::sm::Error, V...>;
template <typename... V>
using ResultFunction = fit::function<void(bt::sm::Result<V...> result)>;
template <typename... V>
using ResultCallback = fit::callback<void(bt::sm::Result<V...> result)>;
} // namespace sm
template <>
struct ProtocolErrorTraits<sm::ErrorCode> {
static std::string ToString(sm::ErrorCode ecode);
// is_success() not declared because the reason does not include a "success" value (Core Spec
// v5.3, Vol 3, Part H, 3.5.5, Table 3.7).
};
} // namespace bt
#endif // SRC_CONNECTIVITY_BLUETOOTH_CORE_BT_HOST_SM_ERROR_H_