1//===--- Protocol.h - Language Server Protocol Implementation ---*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file contains structs for LSP commands that are specific to the MLIR
10// server.
11//
12// Each struct has a toJSON and fromJSON function, that converts between
13// the struct and a JSON representation. (See JSON.h)
14//
15// Some structs also have operator<< serialization. This is for debugging and
16// tests, and is not generally machine-readable.
17//
18//===----------------------------------------------------------------------===//
19
20#ifndef LIB_MLIR_TOOLS_MLIRLSPSERVER_PROTOCOL_H_
21#define LIB_MLIR_TOOLS_MLIRLSPSERVER_PROTOCOL_H_
22
23#include "mlir/Tools/lsp-server-support/Protocol.h"
24
25namespace mlir {
26namespace lsp {
27//===----------------------------------------------------------------------===//
28// MLIRConvertBytecodeParams
29//===----------------------------------------------------------------------===//
30
31/// This class represents the parameters used when converting between MLIR's
32/// bytecode and textual format.
33struct MLIRConvertBytecodeParams {
34 /// The input file containing the bytecode or textual format.
35 URIForFile uri;
36};
37
38/// Add support for JSON serialization.
39bool fromJSON(const llvm::json::Value &value, MLIRConvertBytecodeParams &result,
40 llvm::json::Path path);
41
42//===----------------------------------------------------------------------===//
43// MLIRConvertBytecodeResult
44//===----------------------------------------------------------------------===//
45
46/// This class represents the result of converting between MLIR's bytecode and
47/// textual format.
48struct MLIRConvertBytecodeResult {
49 /// The resultant output of the conversion.
50 std::string output;
51};
52
53/// Add support for JSON serialization.
54llvm::json::Value toJSON(const MLIRConvertBytecodeResult &value);
55
56} // namespace lsp
57} // namespace mlir
58
59#endif
60

source code of mlir/lib/Tools/mlir-lsp-server/Protocol.h