@@ -2,6 +2,17 @@ use serde::{Deserialize, Serialize};
2use serde_json::Value;
2use serde_json::Value;
3use std::path::PathBuf;
3use std::path::PathBuf;
6+ Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Deserialize, Serialize,
8+pub struct ThreadId(isize);
10+impl std::fmt::Display for ThreadId {
11+ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5pub trait Request {
16pub trait Request {
6 type Arguments: serde::de::DeserializeOwned + serde::Serialize;
17 type Arguments: serde::de::DeserializeOwned + serde::Serialize;
7 type Result: serde::de::DeserializeOwned + serde::Serialize;
18 type Result: serde::de::DeserializeOwned + serde::Serialize;
@@ -157,7 +168,7 @@ pub struct StackFrame {
157#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
168#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
158#[serde(rename_all = "camelCase")]
169#[serde(rename_all = "camelCase")]
159pub struct Thread {
170pub struct Thread {
160− pub id: isize,
171+ pub id: ThreadId,
161 pub name: String,
172 pub name: String,
@@ -317,7 +328,7 @@ pub mod requests {
317 #[derive(Debug, Default, PartialEq, Clone, Deserialize, Serialize)]
328 #[derive(Debug, Default, PartialEq, Clone, Deserialize, Serialize)]
318 #[serde(rename_all = "camelCase")]
329 #[serde(rename_all = "camelCase")]
319 pub struct ContinueArguments {
330 pub struct ContinueArguments {
320− pub thread_id: isize,
331+ pub thread_id: ThreadId,
323 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
334 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
@@ -338,7 +349,7 @@ pub mod requests {
338 #[derive(Debug, Default, PartialEq, Clone, Deserialize, Serialize)]
349 #[derive(Debug, Default, PartialEq, Clone, Deserialize, Serialize)]
339 #[serde(rename_all = "camelCase")]
350 #[serde(rename_all = "camelCase")]
340 pub struct StackTraceArguments {
351 pub struct StackTraceArguments {
341− pub thread_id: isize,
352+ pub thread_id: ThreadId,
342 pub start_frame: Option<usize>,
353 pub start_frame: Option<usize>,
343 pub levels: Option<usize>,
354 pub levels: Option<usize>,
344 pub format: Option<StackFrameFormat>,
355 pub format: Option<StackFrameFormat>,
@@ -424,7 +435,7 @@ pub mod requests {
424 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
435 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
425 #[serde(rename_all = "camelCase")]
436 #[serde(rename_all = "camelCase")]
426 pub struct StepInArguments {
437 pub struct StepInArguments {
427− pub thread_id: isize,
438+ pub thread_id: ThreadId,
428 pub target_id: Option<usize>,
439 pub target_id: Option<usize>,
429 pub granularity: Option<String>,
440 pub granularity: Option<String>,
@@ -441,7 +452,7 @@ pub mod requests {
441 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
452 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
442 #[serde(rename_all = "camelCase")]
453 #[serde(rename_all = "camelCase")]
443 pub struct StepOutArguments {
454 pub struct StepOutArguments {
444− pub thread_id: isize,
455+ pub thread_id: ThreadId,
445 pub granularity: Option<String>,
456 pub granularity: Option<String>,
@@ -457,7 +468,7 @@ pub mod requests {
457 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
468 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
458 #[serde(rename_all = "camelCase")]
469 #[serde(rename_all = "camelCase")]
459 pub struct NextArguments {
470 pub struct NextArguments {
460− pub thread_id: isize,
471+ pub thread_id: ThreadId,
461 pub granularity: Option<String>,
472 pub granularity: Option<String>,
@@ -473,7 +484,7 @@ pub mod requests {
473 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
484 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
474 #[serde(rename_all = "camelCase")]
485 #[serde(rename_all = "camelCase")]
475 pub struct PauseArguments {
486 pub struct PauseArguments {
476− pub thread_id: isize,
487+ pub thread_id: ThreadId,
479 #[derive(Debug)]
490 #[derive(Debug)]
@@ -574,7 +585,7 @@ pub mod events {
574 pub struct Stopped {
585 pub struct Stopped {
575 pub reason: String,
586 pub reason: String,
576 pub description: Option<String>,
587 pub description: Option<String>,
577− pub thread_id: Option<isize>,
588+ pub thread_id: Option<ThreadId>,
578 pub preserve_focus_hint: Option<bool>,
589 pub preserve_focus_hint: Option<bool>,
579 pub text: Option<String>,
590 pub text: Option<String>,
580 pub all_threads_stopped: Option<bool>,
591 pub all_threads_stopped: Option<bool>,
@@ -584,7 +595,7 @@ pub mod events {
584 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
595 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
585 #[serde(rename_all = "camelCase")]
596 #[serde(rename_all = "camelCase")]
586 pub struct Continued {
597 pub struct Continued {
587− pub thread_id: isize,
598+ pub thread_id: ThreadId,
588 pub all_threads_continued: Option<bool>,
599 pub all_threads_continued: Option<bool>,
@@ -604,7 +615,7 @@ pub mod events {
604 #[serde(rename_all = "camelCase")]
615 #[serde(rename_all = "camelCase")]
605 pub struct Thread {
616 pub struct Thread {
606 pub reason: String,
617 pub reason: String,
607− pub thread_id: isize,
618+ pub thread_id: ThreadId,
610 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
621 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
@@ -661,7 +672,7 @@ pub mod events {
661 // #[serde(rename_all = "camelCase")]
672 // #[serde(rename_all = "camelCase")]
662 // pub struct Invalidated {
673 // pub struct Invalidated {
663 // pub areas: Vec<InvalidatedArea>,
674 // pub areas: Vec<InvalidatedArea>,
664− // pub thread_id: Option<usize>,
675+ // pub thread_id: Option<ThreadId>,
665 // pub stack_frame_id: Option<usize>,
676 // pub stack_frame_id: Option<usize>,