use crate::utils::eq_default;
use serde::{Deserialize, Serialize};
use serde_json::Value;
use std::collections::HashMap;
use typed_builder::TypedBuilder;
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct Breakpoint {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub id: Option<i32>,
#[serde(rename = "verified")]
pub verified: bool,
#[serde(rename = "message", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub message: Option<String>,
#[serde(rename = "source", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub source: Option<Source>,
#[serde(rename = "line", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line: Option<i32>,
#[serde(rename = "column", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub column: Option<i32>,
#[serde(rename = "endLine", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_line: Option<i32>,
#[serde(rename = "endColumn", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_column: Option<i32>,
#[serde(
rename = "instructionReference",
skip_serializing_if = "Option::is_none"
)]
#[builder(default)]
pub instruction_reference: Option<String>,
#[serde(rename = "offset", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub offset: Option<i32>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct BreakpointLocation {
#[serde(rename = "line")]
pub line: i32,
#[serde(rename = "column", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub column: Option<i32>,
#[serde(rename = "endLine", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_line: Option<i32>,
#[serde(rename = "endColumn", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_column: Option<i32>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct Capabilities {
#[serde(
rename = "supportsConfigurationDoneRequest",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_configuration_done_request: bool,
#[serde(
rename = "supportsFunctionBreakpoints",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_function_breakpoints: bool,
#[serde(
rename = "supportsConditionalBreakpoints",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_conditional_breakpoints: bool,
#[serde(
rename = "supportsHitConditionalBreakpoints",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_hit_conditional_breakpoints: bool,
#[serde(
rename = "supportsEvaluateForHovers",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_evaluate_for_hovers: bool,
#[serde(
rename = "exceptionBreakpointFilters",
default,
skip_serializing_if = "Vec::is_empty"
)]
#[builder(default)]
pub exception_breakpoint_filters: Vec<ExceptionBreakpointsFilter>,
#[serde(
rename = "supportsStepBack",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_step_back: bool,
#[serde(
rename = "supportsSetVariable",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_set_variable: bool,
#[serde(
rename = "supportsRestartFrame",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_restart_frame: bool,
#[serde(
rename = "supportsGotoTargetsRequest",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_goto_targets_request: bool,
#[serde(
rename = "supportsStepInTargetsRequest",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_step_in_targets_request: bool,
#[serde(
rename = "supportsCompletionsRequest",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_completions_request: bool,
#[serde(
rename = "completionTriggerCharacters",
skip_serializing_if = "Option::is_none"
)]
#[builder(default)]
pub completion_trigger_characters: Option<Vec<String>>,
#[serde(
rename = "supportsModulesRequest",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_modules_request: bool,
#[serde(
rename = "additionalModuleColumns",
default,
skip_serializing_if = "Vec::is_empty"
)]
#[builder(default)]
pub additional_module_columns: Vec<ColumnDescriptor>,
#[serde(
rename = "supportedChecksumAlgorithms",
default,
skip_serializing_if = "Vec::is_empty"
)]
#[builder(default)]
pub supported_checksum_algorithms: Vec<ChecksumAlgorithm>,
#[serde(
rename = "supportsRestartRequest",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_restart_request: bool,
#[serde(
rename = "supportsExceptionOptions",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_exception_options: bool,
#[serde(
rename = "supportsValueFormattingOptions",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_value_formatting_options: bool,
#[serde(
rename = "supportsExceptionInfoRequest",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_exception_info_request: bool,
#[serde(
rename = "supportTerminateDebuggee",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub support_terminate_debuggee: bool,
#[serde(
rename = "supportSuspendDebuggee",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub support_suspend_debuggee: bool,
#[serde(
rename = "supportsDelayedStackTraceLoading",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_delayed_stack_trace_loading: bool,
#[serde(
rename = "supportsLoadedSourcesRequest",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_loaded_sources_request: bool,
#[serde(
rename = "supportsLogPoints",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_log_points: bool,
#[serde(
rename = "supportsTerminateThreadsRequest",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_terminate_threads_request: bool,
#[serde(
rename = "supportsSetExpression",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_set_expression: bool,
#[serde(
rename = "supportsTerminateRequest",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_terminate_request: bool,
#[serde(
rename = "supportsDataBreakpoints",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_data_breakpoints: bool,
#[serde(
rename = "supportsReadMemoryRequest",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_read_memory_request: bool,
#[serde(
rename = "supportsDisassembleRequest",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_disassemble_request: bool,
#[serde(
rename = "supportsCancelRequest",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_cancel_request: bool,
#[serde(
rename = "supportsBreakpointLocationsRequest",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_breakpoint_locations_request: bool,
#[serde(
rename = "supportsClipboardContext",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_clipboard_context: bool,
#[serde(
rename = "supportsSteppingGranularity",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_stepping_granularity: bool,
#[serde(
rename = "supportsInstructionBreakpoints",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_instruction_breakpoints: bool,
#[serde(
rename = "supportsExceptionFilterOptions",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_exception_filter_options: bool,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct Checksum {
#[serde(rename = "algorithm")]
pub algorithm: ChecksumAlgorithm,
#[serde(rename = "checksum")]
pub checksum: String,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub enum ChecksumAlgorithm {
#[serde(rename = "MD5")]
MD5,
#[serde(rename = "SHA1")]
SHA1,
#[serde(rename = "SHA256")]
SHA256,
#[serde(rename = "timestamp")]
Timestamp,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct ColumnDescriptor {
#[serde(rename = "attributeName")]
pub attribute_name: String,
#[serde(rename = "label")]
pub label: String,
#[serde(rename = "format", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format: Option<String>,
#[serde(rename = "type", default, skip_serializing_if = "eq_default")]
#[builder(default)]
pub type_: ColumnDescriptorType,
#[serde(rename = "width", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub width: Option<i32>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub enum ColumnDescriptorType {
#[serde(rename = "string")]
String,
#[serde(rename = "number")]
Number,
#[serde(rename = "boolean")]
Boolean,
#[serde(rename = "unixTimestampUTC")]
UnixTimestampUTC,
}
impl Default for ColumnDescriptorType {
fn default() -> Self {
ColumnDescriptorType::String
}
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct CompletionItem {
#[serde(rename = "label")]
pub label: String,
#[serde(rename = "text", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub text: Option<String>,
#[serde(rename = "sortText", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub sort_text: Option<String>,
#[serde(rename = "type", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub type_: Option<CompletionItemType>,
#[serde(rename = "start", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub start: Option<i32>,
#[serde(rename = "length", default, skip_serializing_if = "eq_default")]
#[builder(default)]
pub length: i32,
#[serde(rename = "selectionStart", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection_start: Option<i32>,
#[serde(
rename = "selectionLength",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub selection_length: i32,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub enum CompletionItemType {
#[serde(rename = "method")]
Method,
#[serde(rename = "function")]
Function,
#[serde(rename = "constructor")]
Constructor,
#[serde(rename = "field")]
Field,
#[serde(rename = "variable")]
Variable,
#[serde(rename = "class")]
Class,
#[serde(rename = "interface")]
Interface,
#[serde(rename = "module")]
Module,
#[serde(rename = "property")]
Property,
#[serde(rename = "unit")]
Unit,
#[serde(rename = "value")]
Value,
#[serde(rename = "enum")]
Enum,
#[serde(rename = "keyword")]
Keyword,
#[serde(rename = "snippet")]
Snippet,
#[serde(rename = "text")]
Text,
#[serde(rename = "color")]
Color,
#[serde(rename = "file")]
File,
#[serde(rename = "reference")]
Reference,
#[serde(rename = "customcolor")]
Customcolor,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct DataBreakpoint {
#[serde(rename = "dataId")]
pub data_id: String,
#[serde(rename = "accessType", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub access_type: Option<DataBreakpointAccessType>,
#[serde(rename = "condition", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<String>,
#[serde(rename = "hitCondition", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub hit_condition: Option<String>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub enum DataBreakpointAccessType {
#[serde(rename = "read")]
Read,
#[serde(rename = "write")]
Write,
#[serde(rename = "readWrite")]
ReadWrite,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct DisassembledInstruction {
#[serde(rename = "address")]
pub address: String,
#[serde(rename = "instructionBytes", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub instruction_bytes: Option<String>,
#[serde(rename = "instruction")]
pub instruction: String,
#[serde(rename = "symbol", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol: Option<String>,
#[serde(rename = "location", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub location: Option<Source>,
#[serde(rename = "line", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line: Option<i32>,
#[serde(rename = "column", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub column: Option<i32>,
#[serde(rename = "endLine", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_line: Option<i32>,
#[serde(rename = "endColumn", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_column: Option<i32>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub enum ExceptionBreakMode {
#[serde(rename = "never")]
Never,
#[serde(rename = "always")]
Always,
#[serde(rename = "unhandled")]
Unhandled,
#[serde(rename = "userUnhandled")]
UserUnhandled,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct ExceptionBreakpointsFilter {
#[serde(rename = "filter")]
pub filter: String,
#[serde(rename = "label")]
pub label: String,
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<String>,
#[serde(rename = "default", default, skip_serializing_if = "eq_default")]
#[builder(default)]
pub default: bool,
#[serde(
rename = "supportsCondition",
default,
skip_serializing_if = "eq_default"
)]
#[builder(default)]
pub supports_condition: bool,
#[serde(
rename = "conditionDescription",
skip_serializing_if = "Option::is_none"
)]
#[builder(default)]
pub condition_description: Option<String>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct ExceptionDetails {
#[serde(rename = "message", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub message: Option<String>,
#[serde(rename = "typeName", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub type_name: Option<String>,
#[serde(rename = "fullTypeName", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub full_type_name: Option<String>,
#[serde(rename = "evaluateName", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub evaluate_name: Option<String>,
#[serde(rename = "stackTrace", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stack_trace: Option<String>,
#[serde(
rename = "innerException",
default,
skip_serializing_if = "Vec::is_empty"
)]
#[builder(default)]
pub inner_exception: Vec<ExceptionDetails>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct ExceptionFilterOptions {
#[serde(rename = "filterId")]
pub filter_id: String,
#[serde(rename = "condition", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<String>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct ExceptionOptions {
#[serde(rename = "path", default, skip_serializing_if = "Vec::is_empty")]
#[builder(default)]
pub path: Vec<ExceptionPathSegment>,
#[serde(rename = "breakMode")]
pub break_mode: ExceptionBreakMode,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct ExceptionPathSegment {
#[serde(rename = "negate", default, skip_serializing_if = "eq_default")]
#[builder(default)]
pub negate: bool,
#[serde(rename = "names")]
pub names: Vec<String>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct FunctionBreakpoint {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "condition", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<String>,
#[serde(rename = "hitCondition", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub hit_condition: Option<String>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct GotoTarget {
#[serde(rename = "id")]
pub id: i32,
#[serde(rename = "label")]
pub label: String,
#[serde(rename = "line")]
pub line: i32,
#[serde(rename = "column", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub column: Option<i32>,
#[serde(rename = "endLine", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_line: Option<i32>,
#[serde(rename = "endColumn", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_column: Option<i32>,
#[serde(
rename = "instructionPointerReference",
skip_serializing_if = "Option::is_none"
)]
#[builder(default)]
pub instruction_pointer_reference: Option<String>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct InstructionBreakpoint {
#[serde(rename = "instructionReference")]
pub instruction_reference: String,
#[serde(rename = "offset", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub offset: Option<i32>,
#[serde(rename = "condition", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<String>,
#[serde(rename = "hitCondition", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub hit_condition: Option<String>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub enum InvalidatedAreas {
#[serde(rename = "all")]
All,
#[serde(rename = "stacks")]
Stacks,
#[serde(rename = "threads")]
Threads,
#[serde(rename = "variables")]
Variables,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct Message {
#[serde(rename = "id")]
pub id: i32,
#[serde(rename = "format")]
pub format: String,
#[serde(
rename = "variables",
default,
skip_serializing_if = "HashMap::is_empty"
)]
#[builder(default)]
pub variables: HashMap<String, String>,
#[serde(rename = "sendTelemetry", default, skip_serializing_if = "eq_default")]
#[builder(default)]
pub send_telemetry: bool,
#[serde(rename = "showUser", default, skip_serializing_if = "eq_default")]
#[builder(default)]
pub show_user: bool,
#[serde(rename = "url", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub url: Option<String>,
#[serde(rename = "urlLabel", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub url_label: Option<String>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct Module {
#[serde(rename = "id")]
pub id: ModuleId,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "path", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub path: Option<String>,
#[serde(rename = "isOptimized", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub is_optimized: Option<bool>,
#[serde(rename = "isUserCode", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub is_user_code: Option<bool>,
#[serde(rename = "version", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub version: Option<String>,
#[serde(rename = "symbolStatus", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_status: Option<String>,
#[serde(rename = "symbolFilePath", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_file_path: Option<String>,
#[serde(rename = "dateTimeStamp", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub date_time_stamp: Option<String>,
#[serde(rename = "addressRange", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub address_range: Option<String>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(untagged)]
pub enum ModuleId {
Integer(i32),
String(String),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct ModulesViewDescriptor {
#[serde(rename = "columns")]
pub columns: Vec<ColumnDescriptor>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct Scope {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "presentationHint", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub presentation_hint: Option<ScopePresentationHint>,
#[serde(rename = "variablesReference")]
pub variables_reference: i32,
#[serde(rename = "namedVariables", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub named_variables: Option<i32>,
#[serde(rename = "indexedVariables", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub indexed_variables: Option<i32>,
#[serde(rename = "expensive")]
pub expensive: bool,
#[serde(rename = "source", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub source: Option<Source>,
#[serde(rename = "line", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line: Option<i32>,
#[serde(rename = "column", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub column: Option<i32>,
#[serde(rename = "endLine", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_line: Option<i32>,
#[serde(rename = "endColumn", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_column: Option<i32>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub enum ScopePresentationHint {
#[serde(rename = "arguments")]
Arguments,
#[serde(rename = "locals")]
Locals,
#[serde(rename = "registers")]
Registers,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct Source {
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub name: Option<String>,
#[serde(rename = "path", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub path: Option<String>,
#[serde(rename = "sourceReference", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub source_reference: Option<i32>,
#[serde(rename = "presentationHint", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub presentation_hint: Option<SourcePresentationHint>,
#[serde(rename = "origin", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub origin: Option<String>,
#[serde(rename = "sources", default, skip_serializing_if = "Vec::is_empty")]
#[builder(default)]
pub sources: Vec<Source>,
#[serde(rename = "adapterData", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub adapter_data: Option<Value>,
#[serde(rename = "checksums", default, skip_serializing_if = "Vec::is_empty")]
#[builder(default)]
pub checksums: Vec<Checksum>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub enum SourcePresentationHint {
#[serde(rename = "normal")]
Normal,
#[serde(rename = "emphasize")]
Emphasize,
#[serde(rename = "deemphasize")]
Deemphasize,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct SourceBreakpoint {
#[serde(rename = "line")]
pub line: i32,
#[serde(rename = "column", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub column: Option<i32>,
#[serde(rename = "condition", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<String>,
#[serde(rename = "hitCondition", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub hit_condition: Option<String>,
#[serde(rename = "logMessage", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub log_message: Option<String>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct StackFrame {
#[serde(rename = "id")]
pub id: i32,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "source", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub source: Option<Source>,
#[serde(rename = "line")]
pub line: i32,
#[serde(rename = "column")]
pub column: i32,
#[serde(rename = "endLine", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_line: Option<i32>,
#[serde(rename = "endColumn", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_column: Option<i32>,
#[serde(rename = "canRestart", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub can_restart: Option<bool>,
#[serde(
rename = "instructionPointerReference",
skip_serializing_if = "Option::is_none"
)]
#[builder(default)]
pub instruction_pointer_reference: Option<String>,
#[serde(rename = "moduleId", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub module_id: Option<ModuleId>,
#[serde(rename = "presentationHint", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub presentation_hint: Option<StackFramePresentationHint>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub enum StackFramePresentationHint {
#[serde(rename = "normal")]
Normal,
#[serde(rename = "label")]
Label,
#[serde(rename = "subtle")]
Subtle,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct StackFrameFormat {
#[serde(rename = "parameters", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub parameters: Option<bool>,
#[serde(rename = "parameterTypes", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub parameter_types: Option<bool>,
#[serde(rename = "parameterNames", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub parameter_names: Option<bool>,
#[serde(rename = "parameterValues", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub parameter_values: Option<bool>,
#[serde(rename = "line", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line: Option<bool>,
#[serde(rename = "module", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub module: Option<bool>,
#[serde(rename = "includeAll", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub include_all: Option<bool>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct StepInTarget {
#[serde(rename = "id")]
pub id: i32,
#[serde(rename = "label")]
pub label: String,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub enum SteppingGranularity {
#[serde(rename = "statement")]
Statement,
#[serde(rename = "line")]
Line,
#[serde(rename = "instruction")]
Instruction,
}
impl Default for SteppingGranularity {
fn default() -> Self {
SteppingGranularity::Statement
}
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct Thread {
#[serde(rename = "id")]
pub id: i32,
#[serde(rename = "name")]
pub name: String,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct ValueFormat {
#[serde(rename = "hex", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub hex: Option<bool>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct Variable {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "value")]
pub value: String,
#[serde(rename = "type", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub type_: Option<String>,
#[serde(rename = "presentationHint", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub presentation_hint: Option<VariablePresentationHint>,
#[serde(rename = "evaluateName", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub evaluate_name: Option<String>,
#[serde(rename = "variablesReference")]
pub variables_reference: i32,
#[serde(rename = "namedVariables", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub named_variables: Option<i32>,
#[serde(rename = "indexedVariables", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub indexed_variables: Option<i32>,
#[serde(rename = "memoryReference", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub memory_reference: Option<String>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
pub struct VariablePresentationHint {
#[serde(rename = "kind", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub kind: Option<VariableKind>,
#[serde(rename = "attributes", default, skip_serializing_if = "Vec::is_empty")]
#[builder(default)]
pub attributes: Vec<VariableAttribute>,
#[serde(rename = "visibility", skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub visibility: Option<VariableVisibility>,
#[serde(skip)]
#[builder(default, setter(skip))]
private: (),
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub enum VariableKind {
#[serde(rename = "property")]
Property,
#[serde(rename = "method")]
Method,
#[serde(rename = "class")]
Class,
#[serde(rename = "data")]
Data,
#[serde(rename = "event")]
Event,
#[serde(rename = "baseClass")]
BaseClass,
#[serde(rename = "innerClass")]
InnerClass,
#[serde(rename = "interface")]
Interface,
#[serde(rename = "mostDerivedClass")]
MostDerivedClass,
#[serde(rename = "virtual")]
Virtual,
#[serde(rename = "dataBreakpoint")]
DataBreakpoint,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub enum VariableAttribute {
#[serde(rename = "static")]
Static,
#[serde(rename = "constant")]
Constant,
#[serde(rename = "readOnly")]
ReadOnly,
#[serde(rename = "rawString")]
RawString,
#[serde(rename = "hasObjectId")]
HasObjectId,
#[serde(rename = "canHaveObjectId")]
CanHaveObjectId,
#[serde(rename = "hasSideEffects")]
HasSideEffects,
#[serde(rename = "hasDataBreakpoint")]
HasDataBreakpoint,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub enum VariableVisibility {
#[serde(rename = "public")]
Public,
#[serde(rename = "private")]
Private,
#[serde(rename = "protected")]
Protected,
#[serde(rename = "internal")]
Internal,
#[serde(rename = "final")]
Final,
}