dap: support stepIn, stepOut, next and pause commands
This commit is contained in:
parent
28658836ee
commit
dfc70a12f3
2 changed files with 100 additions and 0 deletions
|
@ -316,4 +316,40 @@ impl Client {
|
||||||
let response = self.request::<requests::Variables>(args).await?;
|
let response = self.request::<requests::Variables>(args).await?;
|
||||||
Ok(response.variables)
|
Ok(response.variables)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub async fn step_in(&mut self, thread_id: usize) -> Result<()> {
|
||||||
|
let args = requests::StepInArguments {
|
||||||
|
thread_id,
|
||||||
|
target_id: None,
|
||||||
|
granularity: None,
|
||||||
|
};
|
||||||
|
|
||||||
|
self.request::<requests::StepIn>(args).await
|
||||||
|
}
|
||||||
|
|
||||||
|
pub async fn step_out(&mut self, thread_id: usize) -> Result<()> {
|
||||||
|
let args = requests::StepOutArguments {
|
||||||
|
thread_id,
|
||||||
|
granularity: None,
|
||||||
|
};
|
||||||
|
|
||||||
|
self.request::<requests::StepOut>(args).await
|
||||||
|
}
|
||||||
|
|
||||||
|
pub async fn next(&mut self, thread_id: usize) -> Result<()> {
|
||||||
|
let args = requests::NextArguments {
|
||||||
|
thread_id,
|
||||||
|
granularity: None,
|
||||||
|
};
|
||||||
|
|
||||||
|
self.request::<requests::Next>(args).await
|
||||||
|
}
|
||||||
|
|
||||||
|
pub async fn pause(&mut self, thread_id: usize) -> Result<()> {
|
||||||
|
let args = requests::PauseArguments {
|
||||||
|
thread_id,
|
||||||
|
};
|
||||||
|
|
||||||
|
self.request::<requests::Pause>(args).await
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -420,6 +420,70 @@ pub mod requests {
|
||||||
type Result = VariablesResponse;
|
type Result = VariablesResponse;
|
||||||
const COMMAND: &'static str = "variables";
|
const COMMAND: &'static str = "variables";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct StepInArguments {
|
||||||
|
pub thread_id: usize,
|
||||||
|
pub target_id: Option<usize>,
|
||||||
|
pub granularity: Option<String>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub enum StepIn {}
|
||||||
|
|
||||||
|
impl Request for StepIn {
|
||||||
|
type Arguments = StepInArguments;
|
||||||
|
type Result = ();
|
||||||
|
const COMMAND: &'static str = "stepIn";
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct StepOutArguments {
|
||||||
|
pub thread_id: usize,
|
||||||
|
pub granularity: Option<String>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub enum StepOut {}
|
||||||
|
|
||||||
|
impl Request for StepOut {
|
||||||
|
type Arguments = StepOutArguments;
|
||||||
|
type Result = ();
|
||||||
|
const COMMAND: &'static str = "stepOut";
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct NextArguments {
|
||||||
|
pub thread_id: usize,
|
||||||
|
pub granularity: Option<String>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub enum Next {}
|
||||||
|
|
||||||
|
impl Request for Next {
|
||||||
|
type Arguments = NextArguments;
|
||||||
|
type Result = ();
|
||||||
|
const COMMAND: &'static str = "next";
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct PauseArguments {
|
||||||
|
pub thread_id: usize,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub enum Pause {}
|
||||||
|
|
||||||
|
impl Request for Pause {
|
||||||
|
type Arguments = PauseArguments;
|
||||||
|
type Result = ();
|
||||||
|
const COMMAND: &'static str = "pause";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Events
|
// Events
|
||||||
|
|
Loading…
Add table
Reference in a new issue