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