module; export module lsp.protocol.window.progress; import std; import lsp.protocol.common.basic_types; export namespace lsp::protocol { struct WorkDoneProgressBegin { string kind = "begin"; string title; boolean cancellable; std::optional message; uinteger percentage; }; struct WorkDoneProgressReport { string kind = "report"; boolean cancellable; std::optional message; uinteger percentage; }; struct WorkDoneProgressEnd { string kind = "end"; string message; }; struct WorkDoneProgressParams { ProgressToken workDoneToken; }; struct WorkDoneProgressOptions { std::optional workDoneProgress; }; struct PartialResultParams { ProgressToken partialResultToken; }; struct WorkDoneProgressCreateParams { ProgressToken token; }; struct WorkDoneProgressCancelParams { ProgressToken token; }; using TraceValue = std::string_view; namespace TraceValueLiterals { inline constexpr TraceValue Off = "off"; inline constexpr TraceValue Messages = "messages"; inline constexpr TraceValue Verbose = "verbose"; } struct SetTraceParams { TraceValue value; }; struct LogTraceParams { string message; std::optional verbose; }; }