summaryrefslogtreecommitdiff
path: root/source/compiler-core
diff options
context:
space:
mode:
Diffstat (limited to 'source/compiler-core')
-rw-r--r--source/compiler-core/slang-language-server-protocol.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/source/compiler-core/slang-language-server-protocol.h b/source/compiler-core/slang-language-server-protocol.h
index ff5cd394e..506969dcc 100644
--- a/source/compiler-core/slang-language-server-protocol.h
+++ b/source/compiler-core/slang-language-server-protocol.h
@@ -6,6 +6,7 @@
#include "../../source/core/slang-rtti-info.h"
#include "../../source/compiler-core/slang-json-value.h"
+#include <optional>
namespace Slang
{
@@ -1124,3 +1125,32 @@ struct DocumentFormattingParams
} // namespace LanguageServerProtocol
} // namespace Slang
+
+namespace Slang
+{
+ template<typename T>
+ struct LanguageServerResult
+ {
+ SlangResult returnCode;
+ bool isNull = true;
+ T result;
+ LanguageServerResult()
+ {
+ returnCode = SLANG_OK;
+ }
+ LanguageServerResult(std::nullopt_t)
+ {
+ returnCode = SLANG_OK;
+ }
+ LanguageServerResult(const T& value)
+ {
+ result = value;
+ isNull = false;
+ returnCode = SLANG_OK;
+ }
+ LanguageServerResult(SlangResult code)
+ {
+ returnCode = code;
+ }
+ };
+}