use serde::{Deserialize, Serialize}; use serde_json::Value; #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct ColumnDescriptor { pub attribute_name: String, pub label: String, pub format: Option, #[serde(rename = "type")] pub col_type: Option, pub width: Option, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct ExceptionBreakpointsFilter { pub filter: String, pub label: String, pub description: Option, pub default: Option, pub supports_condition: Option, pub condition_description: Option, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct DebuggerCapabilities { pub supports_configuration_done_request: Option, pub supports_function_breakpoints: Option, pub supports_conditional_breakpoints: Option, pub supports_hit_conditional_breakpoints: Option, pub supports_evaluate_for_hovers: Option, pub supports_step_back: Option, pub supports_set_variable: Option, pub supports_restart_frame: Option, pub supports_goto_targets_request: Option, pub supports_step_in_targets_request: Option, pub supports_completions_request: Option, pub supports_modules_request: Option, pub supports_restart_request: Option, pub supports_exception_options: Option, pub supports_value_formatting_options: Option, pub supports_exception_info_request: Option, pub support_terminate_debuggee: Option, pub support_suspend_debuggee: Option, pub supports_delayed_stack_trace_loading: Option, pub supports_loaded_sources_request: Option, pub supports_log_points: Option, pub supports_terminate_threads_request: Option, pub supports_set_expression: Option, pub supports_terminate_request: Option, pub supports_data_breakpoints: Option, pub supports_read_memory_request: Option, pub supports_write_memory_request: Option, pub supports_disassemble_request: Option, pub supports_cancel_request: Option, pub supports_breakpoint_locations_request: Option, pub supports_clipboard_context: Option, pub supports_stepping_granularity: Option, pub supports_instruction_breakpoints: Option, pub supports_exception_filter_options: Option, pub exception_breakpoint_filters: Option>, pub completion_trigger_characters: Option>, pub additional_module_columns: Option>, pub supported_checksum_algorithms: Option>, } impl std::ops::Deref for DebuggerCapabilities { type Target = Option; fn deref(&self) -> &Self::Target { &self.supports_exception_options } } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct InitializeArguments { #[serde(rename = "clientID")] pub client_id: Option, pub client_name: Option, #[serde(rename = "adapterID")] pub adapter_id: String, pub locale: Option, #[serde(rename = "linesStartAt1")] pub lines_start_at_one: Option, #[serde(rename = "columnsStartAt1")] pub columns_start_at_one: Option, pub path_format: Option, pub supports_variable_type: Option, pub supports_variable_paging: Option, pub supports_run_in_terminal_request: Option, pub supports_memory_references: Option, pub supports_progress_reporting: Option, pub supports_invalidated_event: Option, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct Checksum { pub algorithm: String, pub checksum: String, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct Source { pub name: Option, pub path: Option, pub source_reference: Option, pub presentation_hint: Option, pub origin: Option, pub sources: Option>, pub adapter_data: Option, pub checksums: Option>, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct SourceBreakpoint { pub line: usize, pub column: Option, pub condition: Option, pub hit_condition: Option, pub log_message: Option, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct SetBreakpointsArguments { pub source: Source, pub breakpoints: Option>, // lines is deprecated pub source_modified: Option, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct Breakpoint { pub id: Option, pub verified: bool, pub message: Option, pub source: Option, pub line: Option, pub column: Option, pub end_line: Option, pub end_column: Option, pub instruction_reference: Option, pub offset: Option, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct SetBreakpointsResponseBody { pub breakpoints: Option>, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct ContinueArguments { pub thread_id: usize, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct ContinueResponseBody { pub all_threads_continued: Option, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct StackFrameFormat { pub parameters: Option, pub parameter_types: Option, pub parameter_names: Option, pub parameter_values: Option, pub line: Option, pub module: Option, pub include_all: Option, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct StackTraceArguments { pub thread_id: usize, pub start_frame: Option, pub levels: Option, pub format: Option, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct StackFrame { pub id: usize, pub name: String, pub source: Option, pub line: usize, pub column: usize, pub end_line: Option, pub end_column: Option, pub can_restart: Option, pub instruction_pointer_reference: Option, pub module_id: Option, pub presentation_hint: Option, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct StackTraceResponseBody { pub total_frames: Option, pub stack_frames: Vec, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct Thread { pub id: usize, pub name: String, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct ThreadsResponseBody { pub threads: Vec, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct ScopesArguments { pub frame_id: usize, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct Scope { pub name: String, pub presentation_hint: Option, pub variables_reference: usize, pub named_variables: Option, pub indexed_variables: Option, pub expensive: bool, pub source: Option, pub line: Option, pub column: Option, pub end_line: Option, pub end_column: Option, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct ScopesResponseBody { pub scopes: Vec, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct ValueFormat { pub hex: Option, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct VariablesArguments { pub variables_reference: usize, pub filter: Option, pub start: Option, pub count: Option, pub format: Option, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct VariablePresentationHint { pub kind: Option, pub attributes: Option>, pub visibility: Option, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct Variable { pub name: String, pub value: String, #[serde(rename = "type")] pub data_type: Option, pub presentation_hint: Option, pub evaluate_name: Option, pub variables_reference: usize, pub named_variables: Option, pub indexed_variables: Option, pub memory_reference: Option, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct VariablesResponseBody { pub variables: Vec, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct OutputEventBody { pub output: String, pub category: Option, pub group: Option, pub line: Option, pub column: Option, pub variables_reference: Option, pub source: Option, pub data: Option, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct StoppedEventBody { pub reason: String, pub description: Option, pub thread_id: Option, pub preserve_focus_hint: Option, pub text: Option, pub all_threads_stopped: Option, pub hit_breakpoint_ids: Option>, }