module dls.protocol.interfaces.window; import std.typecons : Nullable; class ShowMessageParams { MessageType type; string message; this(MessageType type = MessageType.init, string message = string.init) { this.type = type; this.message = message; } } enum MessageType { error = 1, warning = 2, info = 3, log = 4 } class ShowMessageRequestParams : ShowMessageParams { Nullable!(MessageActionItem[]) actions; this(MessageType type = MessageType.init, string message = string.init, Nullable!(MessageActionItem[]) actions = Nullable!(MessageActionItem[]).init) { super(type, message); this.actions = actions; } } class MessageActionItem { string title; this(string title = string.init) { this.title = title; } } alias LogMessageParams = ShowMessageParams;