use serde::{Deserialize, Serialize};
#[derive(PartialEq, Eq, Debug, Hash, Clone, Deserialize, Serialize)]
#[serde(untagged)]
pub enum ModuleId {
Number(u32),
String(String),
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(transparent)]
pub struct AttachRequestArguments {
pub raw: serde_json::Value,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(transparent)]
pub struct LaunchRequestArguments {
pub raw: serde_json::Value,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(transparent)]
pub struct RestartArguments {
pub raw: serde_json::Value,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Breakpoint {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_line: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub instruction_reference: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub line: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reason: Option<BreakpointReason>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source: Option<Source>,
pub verified: bool,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum BreakpointReason {
Pending,
Failed,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct BreakpointEvent {
pub breakpoint: Breakpoint,
pub reason: BreakpointEventReason,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[non_exhaustive]
#[serde(rename_all = "camelCase")]
pub enum BreakpointEventReason {
Changed,
New,
Removed,
#[default]
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct BreakpointLocation {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_line: Option<u32>,
pub line: u32,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct BreakpointLocationsArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_line: Option<u32>,
pub line: u32,
pub source: Source,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct BreakpointLocationsResponse {
pub breakpoints: Vec<BreakpointLocation>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct BreakpointMode {
pub applies_to: Vec<BreakpointModeApplicability>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub label: String,
pub mode: String,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[non_exhaustive]
#[serde(rename_all = "camelCase")]
pub enum BreakpointModeApplicability {
Source,
Exception,
Data,
Instruction,
#[default]
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CancelArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub progress_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub request_id: Option<u64>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Capabilities {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub additional_module_columns: Option<Vec<ColumnDescriptor>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub breakpoint_modes: Option<Vec<BreakpointMode>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub completion_trigger_characters: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exception_breakpoint_filters: Option<Vec<ExceptionBreakpointsFilter>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub support_suspend_debuggee: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub support_terminate_debuggee: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supported_checksum_algorithms: Option<Vec<ChecksumAlgorithm>>,
#[serde(rename = "supportsANSIStyling")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_ansistyling: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_breakpoint_locations_request: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_cancel_request: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_clipboard_context: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_completions_request: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_conditional_breakpoints: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_configuration_done_request: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_data_breakpoint_bytes: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_data_breakpoints: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_delayed_stack_trace_loading: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_disassemble_request: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_evaluate_for_hovers: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_exception_filter_options: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_exception_info_request: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_exception_options: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_function_breakpoints: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_goto_targets_request: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_hit_conditional_breakpoints: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_instruction_breakpoints: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_loaded_sources_request: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_log_points: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_modules_request: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_read_memory_request: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_restart_frame: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_restart_request: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_set_expression: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_set_variable: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_single_thread_execution_requests: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_step_back: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_step_in_targets_request: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_stepping_granularity: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_terminate_request: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_terminate_threads_request: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_value_formatting_options: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_write_memory_request: Option<bool>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CapabilitiesEvent {
pub capabilities: Capabilities,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Checksum {
pub algorithm: ChecksumAlgorithm,
pub checksum: String,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum ChecksumAlgorithm {
#[serde(rename = "MD5")]
Md5,
#[serde(rename = "SHA1")]
Sha1,
#[serde(rename = "SHA256")]
Sha256,
Timestamp,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ColumnDescriptor {
pub attribute_name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub format: Option<String>,
pub label: String,
#[serde(rename = "type")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ty: Option<ColumnDescriptorType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub width: Option<u64>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum ColumnDescriptorType {
String,
Number,
Boolean,
#[serde(rename = "unixTimestampUTC")]
UnixTimestampUtc,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CompletionItem {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub detail: Option<String>,
pub label: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub length: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selection_length: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selection_start: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sort_text: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
#[serde(rename = "type")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ty: Option<CompletionItemType>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum CompletionItemType {
Method,
Function,
Constructor,
Field,
Variable,
Class,
Interface,
Module,
Property,
Unit,
Value,
Enum,
Keyword,
Snippet,
Text,
Color,
File,
Reference,
Customcolor,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CompletionsArguments {
pub column: u32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub frame_id: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub line: Option<u32>,
pub text: String,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CompletionsResponse {
pub targets: Vec<CompletionItem>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
pub struct ConfigurationDoneArguments;
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ContinueArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub single_thread: Option<bool>,
pub thread_id: u64,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ContinueResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub all_threads_continued: Option<bool>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ContinuedEvent {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub all_threads_continued: Option<bool>,
pub thread_id: u64,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DataBreakpoint {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub access_type: Option<DataBreakpointAccessType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub condition: Option<String>,
pub data_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hit_condition: Option<String>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum DataBreakpointAccessType {
Read,
Write,
ReadWrite,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DataBreakpointInfoArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub as_address: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bytes: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub frame_id: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<String>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub variables_reference: Option<u32>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DataBreakpointInfoResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub access_types: Option<Vec<DataBreakpointAccessType>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_persist: Option<bool>,
pub data_id: Option<String>,
pub description: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DisassembleArguments {
pub instruction_count: u64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub instruction_offset: Option<u64>,
pub memory_reference: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resolve_symbols: Option<bool>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DisassembleResponse {
pub instructions: Vec<DisassembledInstruction>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DisassembledInstruction {
pub address: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_line: Option<u32>,
pub instruction: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub instruction_bytes: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub line: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub location: Option<Source>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub presentation_hint: Option<DisassembledInstructionPresentationHint>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub symbol: Option<String>,
}
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum DisassembledInstructionPresentationHint {
Normal,
Invalid,
#[default]
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DisconnectArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub restart: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub suspend_debuggee: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub terminate_debuggee: Option<bool>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ErrorResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<Message>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct EvaluateArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub context: Option<EvaluateArgumentsContext>,
pub expression: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub format: Option<ValueFormat>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub frame_id: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub line: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source: Option<Source>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[non_exhaustive]
#[serde(rename_all = "camelCase")]
pub enum EvaluateArgumentsContext {
Watch,
Repl,
Hover,
Clipboard,
Variables,
#[default]
#[serde(other)]
Unknown,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct EvaluateResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub indexed_variables: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub memory_reference: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub named_variables: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub presentation_hint: Option<VariablePresentationHint>,
pub result: String,
#[serde(rename = "type")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ty: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value_location_reference: Option<u64>,
pub variables_reference: u32,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum ExceptionBreakMode {
Never,
Always,
Unhandled,
UserUnhandled,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ExceptionBreakpointsFilter {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub condition_description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub default: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub filter: String,
pub label: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_condition: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ExceptionDetails {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub evaluate_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub full_type_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub inner_exception: Option<Vec<ExceptionDetails>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stack_trace: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub type_name: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ExceptionFilterOptions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub condition: Option<String>,
pub filter_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ExceptionInfoArguments {
pub thread_id: u64,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ExceptionInfoResponse {
pub break_mode: ExceptionBreakMode,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub details: Option<ExceptionDetails>,
pub exception_id: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ExceptionOptions {
pub break_mode: ExceptionBreakMode,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<Vec<ExceptionPathSegment>>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ExceptionPathSegment {
pub names: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub negate: Option<bool>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ExitedEvent {
pub exit_code: u64,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct FunctionBreakpoint {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub condition: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hit_condition: Option<String>,
pub name: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GotoArguments {
pub target_id: u64,
pub thread_id: u64,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GotoTarget {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_line: Option<u32>,
pub id: u64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub instruction_pointer_reference: Option<String>,
pub label: String,
pub line: u32,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GotoTargetsArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub column: Option<u32>,
pub line: u32,
pub source: Source,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GotoTargetsResponse {
pub targets: Vec<GotoTarget>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct InitializeRequestArguments {
#[serde(rename = "adapterID")]
pub adapter_id: String,
#[serde(rename = "clientID")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub client_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub client_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub columns_start_at1: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lines_start_at1: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub locale: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path_format: Option<InitializeRequestArgumentsPathFormat>,
#[serde(rename = "supportsANSIStyling")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_ansistyling: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_args_can_be_interpreted_by_shell: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_invalidated_event: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_memory_event: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_memory_references: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_progress_reporting: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_run_in_terminal_request: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_start_debugging_request: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_variable_paging: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supports_variable_type: Option<bool>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[non_exhaustive]
#[serde(rename_all = "camelCase")]
pub enum InitializeRequestArgumentsPathFormat {
Path,
Uri,
#[default]
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct InstructionBreakpoint {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub condition: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hit_condition: Option<String>,
pub instruction_reference: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<u32>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[non_exhaustive]
#[serde(rename_all = "camelCase")]
pub enum InvalidatedAreas {
All,
Stacks,
Threads,
Variables,
#[default]
#[serde(other)]
Unknown,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct InvalidatedEvent {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub areas: Option<Vec<InvalidatedAreas>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stack_frame_id: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub thread_id: Option<u64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct LoadedSourceEvent {
pub reason: LoadedSourceEventReason,
pub source: Source,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum LoadedSourceEventReason {
New,
Changed,
Removed,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
pub struct LoadedSourcesArguments;
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct LoadedSourcesResponse {
pub sources: Vec<Source>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct LocationsArguments {
pub location_reference: u64,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct LocationsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_line: Option<u32>,
pub line: u32,
pub source: Source,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct MemoryEvent {
pub count: u64,
pub memory_reference: String,
pub offset: u32,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Message {
pub format: String,
pub id: u64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub send_telemetry: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub show_user: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url_label: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub variables: Option<serde_json::Value>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Module {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub address_range: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub date_time_stamp: Option<String>,
pub id: ModuleId,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_optimized: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_user_code: Option<bool>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub symbol_file_path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub symbol_status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ModuleEvent {
pub module: Module,
pub reason: ModuleEventReason,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum ModuleEventReason {
New,
Changed,
Removed,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ModulesArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub module_count: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start_module: Option<u64>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ModulesResponse {
pub modules: Vec<Module>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_modules: Option<u64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct NextArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub granularity: Option<SteppingGranularity>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub single_thread: Option<bool>,
pub thread_id: u64,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct OutputEvent {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub category: Option<OutputEventCategory>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub data: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub group: Option<OutputEventGroup>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub line: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub location_reference: Option<u64>,
pub output: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source: Option<Source>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub variables_reference: Option<u32>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[non_exhaustive]
#[serde(rename_all = "camelCase")]
pub enum OutputEventCategory {
Console,
Important,
Stdout,
Stderr,
Telemetry,
#[default]
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum OutputEventGroup {
Start,
StartCollapsed,
End,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct PauseArguments {
pub thread_id: u64,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ProcessEvent {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_local_process: Option<bool>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pointer_size: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start_method: Option<ProcessEventStartMethod>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub system_process_id: Option<u64>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum ProcessEventStartMethod {
Launch,
Attach,
AttachForSuspendedLaunch,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ProgressEndEvent {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
pub progress_id: String,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ProgressStartEvent {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cancellable: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub percentage: Option<u64>,
pub progress_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub request_id: Option<u64>,
pub title: String,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ProgressUpdateEvent {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub percentage: Option<u64>,
pub progress_id: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ReadMemoryArguments {
pub count: u64,
pub memory_reference: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<u32>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ReadMemoryResponse {
pub address: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub data: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unreadable_bytes: Option<u64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct RestartFrameArguments {
pub frame_id: u64,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ReverseContinueArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub single_thread: Option<bool>,
pub thread_id: u64,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct RunInTerminalRequestArguments {
pub args: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub args_can_be_interpreted_by_shell: Option<bool>,
pub cwd: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub env: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<RunInTerminalRequestArgumentsKind>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum RunInTerminalRequestArgumentsKind {
Integrated,
External,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct RunInTerminalResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub process_id: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shell_process_id: Option<u32>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Scope {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_line: Option<u32>,
pub expensive: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub indexed_variables: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub line: Option<u32>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub named_variables: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub presentation_hint: Option<ScopePresentationHint>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source: Option<Source>,
pub variables_reference: u32,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[non_exhaustive]
#[serde(rename_all = "camelCase")]
pub enum ScopePresentationHint {
Arguments,
Locals,
Registers,
ReturnValue,
#[default]
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ScopesArguments {
pub frame_id: u64,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ScopesResponse {
pub scopes: Vec<Scope>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetBreakpointsArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub breakpoints: Option<Vec<SourceBreakpoint>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lines: Option<Vec<u64>>,
pub source: Source,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_modified: Option<bool>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetBreakpointsResponse {
pub breakpoints: Vec<Breakpoint>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetDataBreakpointsArguments {
pub breakpoints: Vec<DataBreakpoint>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetDataBreakpointsResponse {
pub breakpoints: Vec<Breakpoint>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetExceptionBreakpointsArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exception_options: Option<Vec<ExceptionOptions>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub filter_options: Option<Vec<ExceptionFilterOptions>>,
pub filters: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetExceptionBreakpointsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub breakpoints: Option<Vec<Breakpoint>>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetExpressionArguments {
pub expression: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub format: Option<ValueFormat>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub frame_id: Option<u64>,
pub value: String,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetExpressionResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub indexed_variables: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub memory_reference: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub named_variables: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub presentation_hint: Option<VariablePresentationHint>,
#[serde(rename = "type")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ty: Option<String>,
pub value: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value_location_reference: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub variables_reference: Option<u32>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetFunctionBreakpointsArguments {
pub breakpoints: Vec<FunctionBreakpoint>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetFunctionBreakpointsResponse {
pub breakpoints: Vec<Breakpoint>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetInstructionBreakpointsArguments {
pub breakpoints: Vec<InstructionBreakpoint>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetInstructionBreakpointsResponse {
pub breakpoints: Vec<Breakpoint>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetVariableArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub format: Option<ValueFormat>,
pub name: String,
pub value: String,
pub variables_reference: u32,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetVariableResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub indexed_variables: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub memory_reference: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub named_variables: Option<u32>,
#[serde(rename = "type")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ty: Option<String>,
pub value: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value_location_reference: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub variables_reference: Option<u32>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Source {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub adapter_data: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub checksums: Option<Vec<Checksum>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub origin: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub presentation_hint: Option<SourcePresentationHint>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_reference: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sources: Option<Vec<Source>>,
}
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum SourcePresentationHint {
Normal,
Emphasize,
Deemphasize,
#[default]
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SourceArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source: Option<Source>,
pub source_reference: u32,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SourceBreakpoint {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub condition: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hit_condition: Option<String>,
pub line: u32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub log_message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SourceResponse {
pub content: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mime_type: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct StackFrame {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_restart: Option<bool>,
pub column: u32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_line: Option<u32>,
pub id: u64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub instruction_pointer_reference: Option<String>,
pub line: u32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub module_id: Option<ModuleId>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub presentation_hint: Option<StackFramePresentationHint>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source: Option<Source>,
}
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum StackFramePresentationHint {
Normal,
Label,
Subtle,
#[serde(rename = "deemphasize")]
Deemphasize,
#[default]
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct StackFrameFormat {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hex: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub include_all: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub line: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub module: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parameter_names: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parameter_types: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parameter_values: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parameters: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct StackTraceArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub format: Option<StackFrameFormat>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub levels: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start_frame: Option<u64>,
pub thread_id: u64,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct StackTraceResponse {
pub stack_frames: Vec<StackFrame>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_frames: Option<u64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct StartDebuggingRequestArguments {
pub configuration: serde_json::Value,
pub request: StartDebuggingRequestArgumentsRequest,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum StartDebuggingRequestArgumentsRequest {
Launch,
Attach,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct StepBackArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub granularity: Option<SteppingGranularity>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub single_thread: Option<bool>,
pub thread_id: u64,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct StepInArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub granularity: Option<SteppingGranularity>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub single_thread: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub target_id: Option<u64>,
pub thread_id: u64,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct StepInTarget {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_column: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_line: Option<u32>,
pub id: u64,
pub label: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub line: Option<u32>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct StepInTargetsArguments {
pub frame_id: u64,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct StepInTargetsResponse {
pub targets: Vec<StepInTarget>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct StepOutArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub granularity: Option<SteppingGranularity>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub single_thread: Option<bool>,
pub thread_id: u64,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum SteppingGranularity {
Statement,
Line,
Instruction,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct StoppedEvent {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub all_threads_stopped: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hit_breakpoint_ids: Option<Vec<u64>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub preserve_focus_hint: Option<bool>,
pub reason: StoppedEventReason,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub thread_id: Option<u64>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[non_exhaustive]
#[serde(rename_all = "camelCase")]
pub enum StoppedEventReason {
Step,
Breakpoint,
Exception,
Pause,
Entry,
Goto,
#[serde(rename = "function breakpoint")]
FunctionBreakpoint,
#[serde(rename = "data breakpoint")]
DataBreakpoint,
#[serde(rename = "instruction breakpoint")]
InstructionBreakpoint,
#[default]
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct TerminateArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub restart: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct TerminateThreadsArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub thread_ids: Option<Vec<u64>>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct TerminatedEvent {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub restart: Option<serde_json::Value>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Thread {
pub id: u64,
pub name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ThreadEvent {
pub reason: ThreadEventReason,
pub thread_id: u64,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[non_exhaustive]
#[serde(rename_all = "camelCase")]
pub enum ThreadEventReason {
Started,
Exited,
#[default]
#[serde(other)]
Unknown,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ThreadsResponse {
pub threads: Vec<Thread>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ValueFormat {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hex: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Variable {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub declaration_location_reference: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub evaluate_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub indexed_variables: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub memory_reference: Option<String>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub named_variables: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub presentation_hint: Option<VariablePresentationHint>,
#[serde(rename = "type")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ty: Option<String>,
pub value: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value_location_reference: Option<u64>,
pub variables_reference: u32,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct VariablePresentationHint {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub attributes: Option<Vec<VariablePresentationHintAttributes>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<VariablePresentationHintKind>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lazy: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub visibility: Option<VariablePresentationHintVisibility>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[non_exhaustive]
#[serde(rename_all = "camelCase")]
pub enum VariablePresentationHintAttributes {
Static,
Constant,
ReadOnly,
RawString,
HasObjectId,
CanHaveObjectId,
HasSideEffects,
HasDataBreakpoint,
#[default]
#[serde(other)]
Unknown,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[non_exhaustive]
#[serde(rename_all = "camelCase")]
pub enum VariablePresentationHintKind {
Property,
Method,
Class,
Data,
Event,
BaseClass,
InnerClass,
Interface,
MostDerivedClass,
Virtual,
DataBreakpoint,
#[default]
#[serde(other)]
Unknown,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[non_exhaustive]
#[serde(rename_all = "camelCase")]
pub enum VariablePresentationHintVisibility {
Public,
Private,
Protected,
Internal,
Final,
#[default]
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct VariablesArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub count: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub filter: Option<VariablesArgumentsFilter>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub format: Option<ValueFormat>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start: Option<u64>,
pub variables_reference: u32,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum VariablesArgumentsFilter {
Indexed,
Named,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct VariablesResponse {
pub variables: Vec<Variable>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct WriteMemoryArguments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allow_partial: Option<bool>,
pub data: String,
pub memory_reference: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<u32>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct WriteMemoryResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bytes_written: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<u32>,
}