bsp_types/
debug_session_start.rs1use super::BuildTargetIdentifier;
2use lsp_types::Url;
3use serde::{Deserialize, Serialize};
4use serde_json::Value;
5
6#[derive(Default, Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
9#[serde(rename_all = "camelCase", default)]
10pub struct DebugSessionStart {
11 targets: Vec<BuildTargetIdentifier>,
13
14 data_kind: String,
17
18 #[serde(skip_serializing_if = "Value::is_null")]
21 data: Value,
22}
23
24impl DebugSessionStart {
25 pub fn new(targets: Vec<BuildTargetIdentifier>, data_kind: String, data: Value) -> Self {
26 Self {
27 targets,
28 data_kind,
29 data,
30 }
31 }
32
33 pub fn targets(&self) -> &[BuildTargetIdentifier] {
35 self.targets.as_ref()
36 }
37
38 pub fn data_kind(&self) -> &str {
40 self.data_kind.as_ref()
41 }
42
43 pub fn data(&self) -> &Value {
45 &self.data
46 }
47
48 pub fn set_targets(&mut self, targets: Vec<BuildTargetIdentifier>) {
50 self.targets = targets;
51 }
52
53 pub fn set_data_kind(&mut self, data_kind: String) {
55 self.data_kind = data_kind;
56 }
57
58 pub fn set_data(&mut self, data: Value) {
60 self.data = data;
61 }
62}
63
64#[derive(Debug, Serialize, Deserialize, PartialEq, Eq)]
65pub struct DebugSessionStartResult {
66 uri: Url,
68}
69
70impl DebugSessionStartResult {
71 pub fn new(uri: Url) -> Self {
72 Self { uri }
73 }
74}