@@ -206,6 +206,21 @@ pub struct Variable {
206 pub memory_reference: Option<String>,
206 pub memory_reference: Option<String>,
209+#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
210+#[serde(rename_all = "camelCase")]
212+ pub id: String, // TODO: || number
214+ pub path: Option<PathBuf>,
215+ pub is_optimized: Option<bool>,
216+ pub is_user_code: Option<bool>,
217+ pub version: Option<String>,
218+ pub symbol_status: Option<String>,
219+ pub symbol_file_path: Option<String>,
220+ pub date_time_stamp: Option<String>,
221+ pub address_range: Option<String>,
209pub mod requests {
224pub mod requests {
210 use super::*;
225 use super::*;
211 #[derive(Debug, Default, PartialEq, Clone, Deserialize, Serialize)]
226 #[derive(Debug, Default, PartialEq, Clone, Deserialize, Serialize)]
@@ -411,6 +426,69 @@ pub mod requests {
412pub mod events {
427pub mod events {
413 use super::*;
428 use super::*;
430+ #[derive(Debug, Clone, Serialize, Deserialize)]
431+ #[serde(rename_all = "camelCase")]
432+ #[serde(tag = "event", content = "body")]
433+ // seq is omitted as unused and is not sent by some implementations
437+ Continued(Continued),
439+ Terminated(Terminated),
442+ Breakpoint(Breakpoint),
444+ LoadedSource(LoadedSource),
446+ Capabilities(Capabilities),
448+ // ProgressUpdate(),
454+ #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
455+ #[serde(rename_all = "camelCase")]
456+ pub struct Stopped {
458+ pub description: Option<String>,
459+ pub thread_id: Option<usize>,
460+ pub preserve_focus_hint: Option<bool>,
461+ pub text: Option<String>,
462+ pub all_threads_stopped: Option<bool>,
463+ pub hit_breakpoint_ids: Option<Vec<usize>>,
466+ #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
467+ #[serde(rename_all = "camelCase")]
468+ pub struct Continued {
469+ pub thread_id: usize,
470+ pub all_threads_continued: Option<bool>,
473+ #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
474+ #[serde(rename_all = "camelCase")]
476+ pub exit_code: usize,
479+ #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
480+ #[serde(rename_all = "camelCase")]
481+ pub struct Terminated {
482+ pub restart: Option<Value>,
485+ #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
486+ #[serde(rename_all = "camelCase")]
489+ pub thread_id: usize,
414 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
492 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
415 #[serde(rename_all = "camelCase")]
493 #[serde(rename_all = "camelCase")]
416 pub struct Output {
494 pub struct Output {
@@ -426,13 +504,54 @@ pub mod events {
427 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
505 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
428 #[serde(rename_all = "camelCase")]
506 #[serde(rename_all = "camelCase")]
429− pub struct Stopped {
507+ pub struct Breakpoint {
430 pub reason: String,
508 pub reason: String,
431− pub description: Option<String>,
509+ pub breakpoint: super::Breakpoint,
512+ #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
513+ #[serde(rename_all = "camelCase")]
516+ pub module: super::Module,
519+ #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
520+ #[serde(rename_all = "camelCase")]
521+ pub struct LoadedSource {
523+ pub source: super::Source,
526+ #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
527+ #[serde(rename_all = "camelCase")]
528+ pub struct Process {
432− pub thread_id: Option<usize>,
530+ pub system_process_id: Option<usize>,
433− pub preserve_focus_hint: Option<bool>,
531+ pub is_local_process: Option<bool>,
434− pub text: Option<String>,
532+ pub start_method: String, // TODO: use enum
435− pub all_threads_stopped: Option<bool>,
533+ pub pointer_size: Option<usize>,
436− pub hit_breakpoint_ids: Option<Vec<usize>>,
534+ }
536+ #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
537+ #[serde(rename_all = "camelCase")]
538+ pub struct Capabilities {
539+ pub module: super::DebuggerCapabilities,
542+ // #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
543+ // #[serde(rename_all = "camelCase")]
544+ // pub struct Invalidated {
545+ // pub areas: Vec<InvalidatedArea>,
546+ // pub thread_id: Option<usize>,
547+ // pub stack_frame_id: Option<usize>,
550+ #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
551+ #[serde(rename_all = "camelCase")]
553+ pub memory_reference: String,