1 //===--- Protocol.cpp - Language Server Protocol Implementation -----------===//
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
7 //===----------------------------------------------------------------------===//
9 // This file contains the serialization code for the MLIR specific LSP structs.
11 //===----------------------------------------------------------------------===//
14 #include "llvm/ADT/Hashing.h"
15 #include "llvm/ADT/SmallString.h"
16 #include "llvm/Support/ErrorHandling.h"
17 #include "llvm/Support/Format.h"
18 #include "llvm/Support/FormatVariadic.h"
19 #include "llvm/Support/JSON.h"
20 #include "llvm/Support/Path.h"
21 #include "llvm/Support/raw_ostream.h"
24 using namespace mlir::lsp
;
26 //===----------------------------------------------------------------------===//
27 // MLIRConvertBytecodeParams
28 //===----------------------------------------------------------------------===//
30 bool mlir::lsp::fromJSON(const llvm::json::Value
&value
,
31 MLIRConvertBytecodeParams
&result
,
32 llvm::json::Path path
) {
33 llvm::json::ObjectMapper
o(value
, path
);
34 return o
&& o
.map("uri", result
.uri
);
37 //===----------------------------------------------------------------------===//
38 // MLIRConvertBytecodeResult
39 //===----------------------------------------------------------------------===//
41 llvm::json::Value
mlir::lsp::toJSON(const MLIRConvertBytecodeResult
&value
) {
42 return llvm::json::Object
{{"output", value
.output
}};