diff options
author | Blaž Hrastnik | 2021-10-17 05:06:52 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2021-10-17 05:06:52 +0000 |
commit | bda05ec4bfb861c9880dd700ab31c1f9bc79e926 (patch) | |
tree | 83f5dfd3faafcff26def96935def03e91ab03ce0 /helix-dap/src/types.rs | |
parent | 83a816740268ec527bf2f908cf752cfcbedc81f9 (diff) |
Use a newtype for ThreadId
Diffstat (limited to 'helix-dap/src/types.rs')
-rw-r--r-- | helix-dap/src/types.rs | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/helix-dap/src/types.rs b/helix-dap/src/types.rs index 5430771f..c2becf33 100644 --- a/helix-dap/src/types.rs +++ b/helix-dap/src/types.rs @@ -2,6 +2,17 @@ use serde::{Deserialize, Serialize}; use serde_json::Value; use std::path::PathBuf; +#[derive( + Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Deserialize, Serialize, +)] +pub struct ThreadId(isize); + +impl std::fmt::Display for ThreadId { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + self.0.fmt(f) + } +} + pub trait Request { type Arguments: serde::de::DeserializeOwned + serde::Serialize; type Result: serde::de::DeserializeOwned + serde::Serialize; @@ -157,7 +168,7 @@ pub struct StackFrame { #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct Thread { - pub id: isize, + pub id: ThreadId, pub name: String, } @@ -317,7 +328,7 @@ pub mod requests { #[derive(Debug, Default, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct ContinueArguments { - pub thread_id: isize, + pub thread_id: ThreadId, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] @@ -338,7 +349,7 @@ pub mod requests { #[derive(Debug, Default, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct StackTraceArguments { - pub thread_id: isize, + pub thread_id: ThreadId, pub start_frame: Option<usize>, pub levels: Option<usize>, pub format: Option<StackFrameFormat>, @@ -424,7 +435,7 @@ pub mod requests { #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct StepInArguments { - pub thread_id: isize, + pub thread_id: ThreadId, pub target_id: Option<usize>, pub granularity: Option<String>, } @@ -441,7 +452,7 @@ pub mod requests { #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct StepOutArguments { - pub thread_id: isize, + pub thread_id: ThreadId, pub granularity: Option<String>, } @@ -457,7 +468,7 @@ pub mod requests { #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct NextArguments { - pub thread_id: isize, + pub thread_id: ThreadId, pub granularity: Option<String>, } @@ -473,7 +484,7 @@ pub mod requests { #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct PauseArguments { - pub thread_id: isize, + pub thread_id: ThreadId, } #[derive(Debug)] @@ -574,7 +585,7 @@ pub mod events { pub struct Stopped { pub reason: String, pub description: Option<String>, - pub thread_id: Option<isize>, + pub thread_id: Option<ThreadId>, pub preserve_focus_hint: Option<bool>, pub text: Option<String>, pub all_threads_stopped: Option<bool>, @@ -584,7 +595,7 @@ pub mod events { #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct Continued { - pub thread_id: isize, + pub thread_id: ThreadId, pub all_threads_continued: Option<bool>, } @@ -604,7 +615,7 @@ pub mod events { #[serde(rename_all = "camelCase")] pub struct Thread { pub reason: String, - pub thread_id: isize, + pub thread_id: ThreadId, } #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] @@ -661,7 +672,7 @@ pub mod events { // #[serde(rename_all = "camelCase")] // pub struct Invalidated { // pub areas: Vec<InvalidatedArea>, - // pub thread_id: Option<usize>, + // pub thread_id: Option<ThreadId>, // pub stack_frame_id: Option<usize>, // } |