//===----------------------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLDB_UNITTESTS_PROTOCOL_PROTOCOLMCPTESTUTILITIES_H #define LLDB_UNITTESTS_PROTOCOL_PROTOCOLMCPTESTUTILITIES_H #include "lldb/Protocol/MCP/Protocol.h" #include "llvm/Support/FormatVariadic.h" #include "llvm/Support/JSON.h" // IWYU pragma: keep #include "gtest/gtest.h" // IWYU pragma: keep #include #include namespace lldb_protocol::mcp { inline void PrintTo(const Request &req, std::ostream *os) { *os << llvm::formatv("{0}", toJSON(req)).str(); } inline void PrintTo(const Response &resp, std::ostream *os) { *os << llvm::formatv("{0}", toJSON(resp)).str(); } inline void PrintTo(const Notification ¬e, std::ostream *os) { *os << llvm::formatv("{0}", toJSON(note)).str(); } inline void PrintTo(const Message &message, std::ostream *os) { return std::visit([os](auto &&message) { return PrintTo(message, os); }, message); } } // namespace lldb_protocol::mcp #endif