1use serde::{Deserialize, Serialize};
21use std::collections::HashMap;
22
23#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(rename_all = "camelCase")]
28pub struct Request {
29 pub seq: i64,
31 #[serde(rename = "type")]
33 pub msg_type: String,
34 pub command: String,
36 #[serde(skip_serializing_if = "Option::is_none")]
38 pub arguments: Option<serde_json::Value>,
39}
40
41#[derive(Debug, Clone, Serialize, Deserialize)]
45#[serde(rename_all = "camelCase")]
46pub struct Response {
47 pub seq: i64,
49 #[serde(rename = "type")]
51 pub msg_type: String,
52 pub request_seq: i64,
54 pub success: bool,
56 pub command: String,
58 #[serde(skip_serializing_if = "Option::is_none")]
60 pub message: Option<String>,
61 #[serde(skip_serializing_if = "Option::is_none")]
63 pub body: Option<serde_json::Value>,
64}
65
66#[derive(Debug, Clone, Serialize, Deserialize)]
70#[serde(rename_all = "camelCase")]
71pub struct Event {
72 pub seq: i64,
74 #[serde(rename = "type")]
76 pub msg_type: String,
77 pub event: String,
79 #[serde(skip_serializing_if = "Option::is_none")]
81 pub body: Option<serde_json::Value>,
82}
83
84#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(rename_all = "camelCase")]
91pub struct Source {
92 #[serde(skip_serializing_if = "Option::is_none")]
94 pub path: Option<String>,
95 #[serde(skip_serializing_if = "Option::is_none")]
97 pub name: Option<String>,
98}
99
100#[derive(Debug, Clone, Serialize, Deserialize)]
102#[serde(rename_all = "camelCase")]
103pub struct SourceBreakpoint {
104 pub line: i64,
106 #[serde(skip_serializing_if = "Option::is_none")]
108 pub column: Option<i64>,
109 #[serde(skip_serializing_if = "Option::is_none")]
111 pub condition: Option<String>,
112 #[serde(skip_serializing_if = "Option::is_none")]
114 pub hit_condition: Option<String>,
115 #[serde(skip_serializing_if = "Option::is_none")]
117 pub log_message: Option<String>,
118}
119
120#[derive(Debug, Clone, Serialize, Deserialize)]
122#[serde(rename_all = "camelCase")]
123pub struct SetBreakpointsArguments {
124 pub source: Source,
126 #[serde(skip_serializing_if = "Option::is_none")]
128 pub breakpoints: Option<Vec<SourceBreakpoint>>,
129 #[serde(skip_serializing_if = "Option::is_none")]
131 pub source_modified: Option<bool>,
132}
133
134#[derive(Debug, Clone, Serialize, Deserialize)]
136#[serde(rename_all = "camelCase")]
137pub struct Breakpoint {
138 pub id: i64,
140 pub verified: bool,
142 pub line: i64,
144 #[serde(skip_serializing_if = "Option::is_none")]
146 pub column: Option<i64>,
147 #[serde(skip_serializing_if = "Option::is_none")]
149 pub message: Option<String>,
150}
151
152#[derive(Debug, Clone, Serialize, Deserialize)]
154#[serde(rename_all = "camelCase")]
155pub struct SetBreakpointsResponseBody {
156 pub breakpoints: Vec<Breakpoint>,
158}
159
160#[derive(Debug, Clone, Serialize, Deserialize)]
169#[serde(rename_all = "camelCase")]
170pub struct InlineValuesArguments {
171 pub source: Source,
173 pub start_line: i64,
175 pub end_line: i64,
177}
178
179#[derive(Debug, Clone, Serialize, Deserialize)]
181#[serde(rename_all = "camelCase")]
182pub struct InlineValueText {
183 pub line: i64,
185 pub column: i64,
187 pub text: String,
189}
190
191#[derive(Debug, Clone, Serialize, Deserialize)]
193#[serde(rename_all = "camelCase")]
194pub struct InlineValuesResponseBody {
195 pub inline_values: Vec<InlineValueText>,
197}
198
199#[derive(Debug, Clone, Serialize, Deserialize)]
205#[serde(rename_all = "camelCase")]
206pub struct InitializeRequestArguments {
207 #[serde(rename = "clientID", alias = "clientId")]
209 #[serde(skip_serializing_if = "Option::is_none")]
210 pub client_id: Option<String>,
211 #[serde(skip_serializing_if = "Option::is_none")]
213 pub client_name: Option<String>,
214 #[serde(rename = "adapterID", alias = "adapterId")]
216 pub adapter_id: String,
217 #[serde(skip_serializing_if = "Option::is_none")]
219 pub locale: Option<String>,
220 #[serde(skip_serializing_if = "Option::is_none")]
222 pub lines_start_at1: Option<bool>,
223 #[serde(skip_serializing_if = "Option::is_none")]
225 pub columns_start_at1: Option<bool>,
226 #[serde(skip_serializing_if = "Option::is_none")]
228 pub path_format: Option<String>,
229}
230
231#[derive(Debug, Clone, Serialize, Deserialize)]
233#[serde(rename_all = "camelCase")]
234pub struct Capabilities {
235 #[serde(skip_serializing_if = "Option::is_none")]
237 pub supports_configuration_done_request: Option<bool>,
238 #[serde(skip_serializing_if = "Option::is_none")]
240 pub supports_evaluate_for_hovers: Option<bool>,
241 #[serde(skip_serializing_if = "Option::is_none")]
243 pub supports_conditional_breakpoints: Option<bool>,
244 #[serde(skip_serializing_if = "Option::is_none")]
246 pub supports_hit_conditional_breakpoints: Option<bool>,
247 #[serde(skip_serializing_if = "Option::is_none")]
249 pub supports_log_points: Option<bool>,
250 #[serde(skip_serializing_if = "Option::is_none")]
252 pub supports_exception_options: Option<bool>,
253 #[serde(skip_serializing_if = "Option::is_none")]
255 pub supports_exception_filter_options: Option<bool>,
256 #[serde(skip_serializing_if = "Option::is_none")]
258 pub supports_terminate_request: Option<bool>,
259 #[serde(skip_serializing_if = "Option::is_none")]
261 pub supports_inline_values: Option<bool>,
262 #[serde(skip_serializing_if = "Option::is_none")]
264 pub supports_function_breakpoints: Option<bool>,
265 #[serde(skip_serializing_if = "Option::is_none")]
267 pub supports_set_variable: Option<bool>,
268 #[serde(skip_serializing_if = "Option::is_none")]
270 pub supports_value_formatting_options: Option<bool>,
271 #[serde(skip_serializing_if = "Option::is_none")]
273 pub support_terminate_debuggee: Option<bool>,
274 #[serde(skip_serializing_if = "Option::is_none")]
276 pub supports_step_back: Option<bool>,
277 #[serde(skip_serializing_if = "Option::is_none")]
279 pub supports_data_breakpoints: Option<bool>,
280 #[serde(skip_serializing_if = "Option::is_none")]
282 pub exception_breakpoint_filters: Option<Vec<ExceptionBreakpointFilter>>,
283}
284
285#[derive(Debug, Clone, Serialize, Deserialize)]
291#[serde(rename_all = "camelCase")]
292pub struct LaunchRequestArguments {
293 pub program: String,
295 #[serde(skip_serializing_if = "Option::is_none")]
297 pub args: Option<Vec<String>>,
298 #[serde(skip_serializing_if = "Option::is_none")]
300 pub cwd: Option<String>,
301 #[serde(skip_serializing_if = "Option::is_none")]
303 pub env: Option<HashMap<String, String>>,
304 #[serde(skip_serializing_if = "Option::is_none")]
306 pub perl_path: Option<String>,
307 #[serde(skip_serializing_if = "Option::is_none")]
309 pub stop_on_entry: Option<bool>,
310}
311
312#[derive(Debug, Clone, Serialize, Deserialize)]
318#[serde(rename_all = "camelCase")]
319pub struct AttachRequestArguments {
320 #[serde(skip_serializing_if = "Option::is_none")]
322 pub process_id: Option<u32>,
323 #[serde(skip_serializing_if = "Option::is_none")]
325 pub host: Option<String>,
326 #[serde(skip_serializing_if = "Option::is_none")]
328 pub port: Option<u16>,
329 #[serde(skip_serializing_if = "Option::is_none")]
331 pub timeout: Option<u32>,
332 #[serde(skip_serializing_if = "Option::is_none")]
334 pub stop_on_entry: Option<bool>,
335}
336
337#[derive(Debug, Clone, Serialize, Deserialize)]
343#[serde(rename_all = "camelCase")]
344pub struct StackTraceArguments {
345 pub thread_id: i64,
347 #[serde(skip_serializing_if = "Option::is_none")]
349 pub start_frame: Option<i64>,
350 #[serde(skip_serializing_if = "Option::is_none")]
352 pub levels: Option<i64>,
353}
354
355#[derive(Debug, Clone, Serialize, Deserialize)]
357#[serde(rename_all = "camelCase")]
358pub struct ScopesArguments {
359 pub frame_id: i64,
361}
362
363#[derive(Debug, Clone, Serialize, Deserialize)]
365#[serde(rename_all = "camelCase")]
366pub struct VariablesArguments {
367 pub variables_reference: i64,
369 #[serde(skip_serializing_if = "Option::is_none")]
371 pub filter: Option<String>,
372 #[serde(skip_serializing_if = "Option::is_none")]
374 pub start: Option<i64>,
375 #[serde(skip_serializing_if = "Option::is_none")]
377 pub count: Option<i64>,
378}
379
380#[derive(Debug, Clone, Serialize, Deserialize)]
382#[serde(rename_all = "camelCase")]
383pub struct EvaluateArguments {
384 pub expression: String,
386 #[serde(skip_serializing_if = "Option::is_none")]
388 pub frame_id: Option<i64>,
389 #[serde(skip_serializing_if = "Option::is_none")]
391 pub context: Option<String>,
392 #[serde(skip_serializing_if = "Option::is_none")]
394 pub allow_side_effects: Option<bool>,
395}
396
397#[derive(Debug, Clone, Serialize, Deserialize)]
403#[serde(rename_all = "camelCase")]
404pub struct ContinueArguments {
405 pub thread_id: i64,
407}
408
409#[derive(Debug, Clone, Serialize, Deserialize)]
411#[serde(rename_all = "camelCase")]
412pub struct NextArguments {
413 pub thread_id: i64,
415}
416
417#[derive(Debug, Clone, Serialize, Deserialize)]
419#[serde(rename_all = "camelCase")]
420pub struct StepInArguments {
421 pub thread_id: i64,
423}
424
425#[derive(Debug, Clone, Serialize, Deserialize)]
427#[serde(rename_all = "camelCase")]
428pub struct StepOutArguments {
429 pub thread_id: i64,
431}
432
433#[derive(Debug, Clone, Serialize, Deserialize)]
435#[serde(rename_all = "camelCase")]
436pub struct PauseArguments {
437 pub thread_id: i64,
439}
440
441#[derive(Debug, Clone, Serialize, Deserialize)]
447#[serde(rename_all = "camelCase")]
448pub struct SetVariableArguments {
449 pub variables_reference: i64,
451 pub name: String,
453 pub value: String,
455}
456
457#[derive(Debug, Clone, Serialize, Deserialize)]
463#[serde(rename_all = "camelCase")]
464pub struct DisconnectArguments {
465 #[serde(skip_serializing_if = "Option::is_none")]
467 pub restart: Option<bool>,
468 #[serde(skip_serializing_if = "Option::is_none")]
470 pub terminate_debuggee: Option<bool>,
471}
472
473#[derive(Debug, Clone, Serialize, Deserialize)]
475#[serde(rename_all = "camelCase")]
476pub struct TerminateArguments {
477 #[serde(skip_serializing_if = "Option::is_none")]
479 pub restart: Option<bool>,
480}
481
482#[derive(Debug, Clone, Serialize, Deserialize)]
488#[serde(rename_all = "camelCase")]
489pub struct SetFunctionBreakpointsArguments {
490 pub breakpoints: Vec<FunctionBreakpoint>,
492}
493
494#[derive(Debug, Clone, Serialize, Deserialize)]
496#[serde(rename_all = "camelCase")]
497pub struct SetExceptionBreakpointsArguments {
498 pub filters: Vec<String>,
500 #[serde(skip_serializing_if = "Option::is_none")]
502 pub filter_options: Option<Vec<ExceptionFilterOption>>,
503}
504
505#[derive(Debug, Clone, Serialize, Deserialize)]
511#[serde(rename_all = "camelCase")]
512pub struct FunctionBreakpoint {
513 pub name: String,
515 #[serde(skip_serializing_if = "Option::is_none")]
517 pub condition: Option<String>,
518 #[serde(skip_serializing_if = "Option::is_none")]
520 pub hit_condition: Option<String>,
521}
522
523#[derive(Debug, Clone, Serialize, Deserialize)]
525#[serde(rename_all = "camelCase")]
526pub struct ExceptionFilterOption {
527 pub filter_id: String,
529 #[serde(skip_serializing_if = "Option::is_none")]
531 pub condition: Option<String>,
532}
533
534#[derive(Debug, Clone, Serialize, Deserialize)]
536#[serde(rename_all = "camelCase")]
537pub struct ExceptionBreakpointFilter {
538 pub filter: String,
540 pub label: String,
542 #[serde(skip_serializing_if = "Option::is_none")]
544 pub default: Option<bool>,
545}
546
547#[derive(Debug, Clone, Serialize, Deserialize)]
549#[serde(rename_all = "camelCase")]
550pub struct Thread {
551 pub id: i64,
553 pub name: String,
555}
556
557#[derive(Debug, Clone, Serialize, Deserialize)]
559#[serde(rename_all = "camelCase")]
560pub struct Scope {
561 pub name: String,
563 #[serde(skip_serializing_if = "Option::is_none")]
565 pub presentation_hint: Option<String>,
566 pub variables_reference: i64,
568 pub expensive: bool,
570 #[serde(skip_serializing_if = "Option::is_none")]
572 pub named_variables: Option<i64>,
573 #[serde(skip_serializing_if = "Option::is_none")]
575 pub indexed_variables: Option<i64>,
576}
577
578#[derive(Debug, Clone, Serialize, Deserialize)]
580#[serde(rename_all = "camelCase")]
581pub struct ProtocolVariable {
582 pub name: String,
584 pub value: String,
586 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
588 pub type_: Option<String>,
589 pub variables_reference: i64,
591 #[serde(skip_serializing_if = "Option::is_none")]
593 pub named_variables: Option<i64>,
594 #[serde(skip_serializing_if = "Option::is_none")]
596 pub indexed_variables: Option<i64>,
597}
598
599#[derive(Debug, Clone, Serialize, Deserialize)]
601#[serde(rename_all = "camelCase")]
602pub struct ProtocolStackFrame {
603 pub id: i64,
605 pub name: String,
607 #[serde(skip_serializing_if = "Option::is_none")]
609 pub source: Option<Source>,
610 pub line: i64,
612 pub column: i64,
614 #[serde(skip_serializing_if = "Option::is_none")]
616 pub end_line: Option<i64>,
617 #[serde(skip_serializing_if = "Option::is_none")]
619 pub end_column: Option<i64>,
620}
621
622#[derive(Debug, Clone, Serialize, Deserialize)]
628#[serde(rename_all = "camelCase")]
629pub struct ThreadsResponseBody {
630 pub threads: Vec<Thread>,
632}
633
634#[derive(Debug, Clone, Serialize, Deserialize)]
636#[serde(rename_all = "camelCase")]
637pub struct StackTraceResponseBody {
638 pub stack_frames: Vec<ProtocolStackFrame>,
640 #[serde(skip_serializing_if = "Option::is_none")]
642 pub total_frames: Option<i64>,
643}
644
645#[derive(Debug, Clone, Serialize, Deserialize)]
647#[serde(rename_all = "camelCase")]
648pub struct ScopesResponseBody {
649 pub scopes: Vec<Scope>,
651}
652
653#[derive(Debug, Clone, Serialize, Deserialize)]
655#[serde(rename_all = "camelCase")]
656pub struct VariablesResponseBody {
657 pub variables: Vec<ProtocolVariable>,
659 #[serde(skip_serializing_if = "Option::is_none")]
661 pub total_variables: Option<i64>,
662}
663
664#[derive(Debug, Clone, Serialize, Deserialize)]
666#[serde(rename_all = "camelCase")]
667pub struct ContinueResponseBody {
668 pub all_threads_continued: bool,
670}
671
672#[derive(Debug, Clone, Serialize, Deserialize)]
674#[serde(rename_all = "camelCase")]
675pub struct EvaluateResponseBody {
676 pub result: String,
678 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
680 pub type_: Option<String>,
681 pub variables_reference: i64,
683}
684
685#[derive(Debug, Clone, Serialize, Deserialize)]
687#[serde(rename_all = "camelCase")]
688pub struct SetVariableResponseBody {
689 pub value: String,
691 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
693 pub type_: Option<String>,
694 pub variables_reference: i64,
696}
697
698#[derive(Debug, Clone, Serialize, Deserialize)]
704#[serde(rename_all = "camelCase")]
705pub struct BreakpointLocationsArguments {
706 pub source: Source,
708 pub line: i64,
710 #[serde(skip_serializing_if = "Option::is_none")]
712 pub end_line: Option<i64>,
713}
714
715#[derive(Debug, Clone, Serialize, Deserialize)]
717#[serde(rename_all = "camelCase")]
718pub struct BreakpointLocation {
719 pub line: i64,
721 #[serde(skip_serializing_if = "Option::is_none")]
723 pub column: Option<i64>,
724 #[serde(skip_serializing_if = "Option::is_none")]
726 pub end_line: Option<i64>,
727 #[serde(skip_serializing_if = "Option::is_none")]
729 pub end_column: Option<i64>,
730}
731
732#[derive(Debug, Clone, Serialize, Deserialize)]
734#[serde(rename_all = "camelCase")]
735pub struct BreakpointLocationsResponseBody {
736 pub breakpoints: Vec<BreakpointLocation>,
738}
739
740#[derive(Debug, Clone, Serialize, Deserialize)]
746#[serde(rename_all = "camelCase")]
747pub struct SourceArguments {
748 #[serde(skip_serializing_if = "Option::is_none")]
750 pub source_reference: Option<i64>,
751 #[serde(skip_serializing_if = "Option::is_none")]
753 pub source: Option<Source>,
754}
755
756#[derive(Debug, Clone, Serialize, Deserialize)]
758#[serde(rename_all = "camelCase")]
759pub struct SourceResponseBody {
760 pub content: String,
762 #[serde(skip_serializing_if = "Option::is_none")]
764 pub mime_type: Option<String>,
765}
766
767#[derive(Debug, Clone, Serialize, Deserialize)]
773#[serde(rename_all = "camelCase")]
774pub struct StepInTargetsArguments {
775 pub frame_id: i64,
777}
778
779#[derive(Debug, Clone, Serialize, Deserialize)]
781#[serde(rename_all = "camelCase")]
782pub struct StepInTarget {
783 pub id: i64,
785 pub label: String,
787}
788
789#[derive(Debug, Clone, Serialize, Deserialize)]
791#[serde(rename_all = "camelCase")]
792pub struct StepInTargetsResponseBody {
793 pub targets: Vec<StepInTarget>,
795}
796
797#[derive(Debug, Clone, Serialize, Deserialize)]
803#[serde(rename_all = "camelCase")]
804pub struct GotoTargetsArguments {
805 pub source: Source,
807 pub line: i64,
809 #[serde(skip_serializing_if = "Option::is_none")]
811 pub column: Option<i64>,
812}
813
814#[derive(Debug, Clone, Serialize, Deserialize)]
816#[serde(rename_all = "camelCase")]
817pub struct GotoTarget {
818 pub id: i64,
820 pub label: String,
822 pub line: i64,
824 #[serde(skip_serializing_if = "Option::is_none")]
826 pub column: Option<i64>,
827 #[serde(skip_serializing_if = "Option::is_none")]
829 pub end_line: Option<i64>,
830 #[serde(skip_serializing_if = "Option::is_none")]
832 pub end_column: Option<i64>,
833}
834
835#[derive(Debug, Clone, Serialize, Deserialize)]
837#[serde(rename_all = "camelCase")]
838pub struct GotoTargetsResponseBody {
839 pub targets: Vec<GotoTarget>,
841}
842
843#[derive(Debug, Clone, Serialize, Deserialize)]
849#[serde(rename_all = "camelCase")]
850pub struct ExceptionInfoArguments {
851 pub thread_id: i64,
853}
854
855#[derive(Debug, Clone, Serialize, Deserialize)]
857#[serde(rename_all = "camelCase")]
858pub struct ExceptionDetails {
859 #[serde(skip_serializing_if = "Option::is_none")]
861 pub message: Option<String>,
862 #[serde(rename = "typeName", skip_serializing_if = "Option::is_none")]
864 pub type_name: Option<String>,
865 #[serde(skip_serializing_if = "Option::is_none")]
867 pub stack_trace: Option<String>,
868}
869
870#[derive(Debug, Clone, Serialize, Deserialize)]
872#[serde(rename_all = "camelCase")]
873pub struct ExceptionInfoResponseBody {
874 pub exception_id: String,
876 #[serde(skip_serializing_if = "Option::is_none")]
878 pub description: Option<String>,
879 pub break_mode: String,
881 #[serde(skip_serializing_if = "Option::is_none")]
883 pub details: Option<ExceptionDetails>,
884}
885
886#[derive(Debug, Clone, Serialize, Deserialize)]
892#[serde(rename_all = "camelCase")]
893pub struct SetExpressionArguments {
894 pub expression: String,
896 pub value: String,
898 #[serde(skip_serializing_if = "Option::is_none")]
900 pub frame_id: Option<i64>,
901}
902
903#[derive(Debug, Clone, Serialize, Deserialize)]
905#[serde(rename_all = "camelCase")]
906pub struct SetExpressionResponseBody {
907 pub value: String,
909 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
911 pub type_: Option<String>,
912 pub variables_reference: i64,
914}
915
916#[derive(Debug, Clone, Serialize, Deserialize)]
922#[serde(rename_all = "camelCase")]
923pub struct RestartArguments {
924 #[serde(skip_serializing_if = "Option::is_none")]
926 pub arguments: Option<serde_json::Value>,
927}
928
929#[derive(Debug, Clone, Serialize, Deserialize)]
935#[serde(rename_all = "camelCase")]
936pub struct LoadedSourcesResponseBody {
937 pub sources: Vec<Source>,
939}
940
941#[derive(Debug, Clone, Serialize, Deserialize)]
947#[serde(rename_all = "camelCase")]
948pub struct ModulesArguments {
949 #[serde(skip_serializing_if = "Option::is_none")]
951 pub start_module: Option<i64>,
952 #[serde(skip_serializing_if = "Option::is_none")]
954 pub module_count: Option<i64>,
955}
956
957#[derive(Debug, Clone, Serialize, Deserialize)]
959#[serde(rename_all = "camelCase")]
960pub struct Module {
961 pub id: String,
963 pub name: String,
965 #[serde(skip_serializing_if = "Option::is_none")]
967 pub path: Option<String>,
968}
969
970#[derive(Debug, Clone, Serialize, Deserialize)]
972#[serde(rename_all = "camelCase")]
973pub struct ModulesResponseBody {
974 pub modules: Vec<Module>,
976 #[serde(skip_serializing_if = "Option::is_none")]
978 pub total_modules: Option<i64>,
979}
980
981#[derive(Debug, Clone, Serialize, Deserialize)]
987#[serde(rename_all = "camelCase")]
988pub struct CompletionsArguments {
989 pub text: String,
991 pub column: i64,
993 #[serde(skip_serializing_if = "Option::is_none")]
995 pub frame_id: Option<i64>,
996 #[serde(skip_serializing_if = "Option::is_none")]
998 pub line: Option<i64>,
999}
1000
1001#[derive(Debug, Clone, Serialize, Deserialize)]
1003#[serde(rename_all = "camelCase")]
1004pub struct CompletionItem {
1005 pub label: String,
1007 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
1009 pub type_: Option<String>,
1010 #[serde(skip_serializing_if = "Option::is_none")]
1012 pub text: Option<String>,
1013 #[serde(skip_serializing_if = "Option::is_none")]
1015 pub sort_text: Option<String>,
1016 #[serde(skip_serializing_if = "Option::is_none")]
1018 pub detail: Option<String>,
1019 #[serde(skip_serializing_if = "Option::is_none")]
1021 pub start: Option<i64>,
1022 #[serde(skip_serializing_if = "Option::is_none")]
1024 pub length: Option<i64>,
1025}
1026
1027#[derive(Debug, Clone, Serialize, Deserialize)]
1029#[serde(rename_all = "camelCase")]
1030pub struct CompletionsResponseBody {
1031 pub targets: Vec<CompletionItem>,
1033}
1034
1035#[derive(Debug, Clone, Serialize, Deserialize)]
1041#[serde(rename_all = "camelCase")]
1042pub struct DataBreakpointInfoArguments {
1043 pub name: String,
1045 #[serde(skip_serializing_if = "Option::is_none")]
1047 pub variables_reference: Option<i64>,
1048 #[serde(skip_serializing_if = "Option::is_none")]
1050 pub frame_id: Option<i64>,
1051}
1052
1053#[derive(Debug, Clone, Serialize, Deserialize)]
1055#[serde(rename_all = "camelCase")]
1056pub struct DataBreakpointInfoResponseBody {
1057 #[serde(skip_serializing_if = "Option::is_none")]
1059 pub data_id: Option<String>,
1060 pub description: String,
1062 #[serde(skip_serializing_if = "Option::is_none")]
1064 pub access_types: Option<Vec<String>>,
1065}
1066
1067#[derive(Debug, Clone, Serialize, Deserialize)]
1073#[serde(rename_all = "camelCase")]
1074pub struct DataBreakpoint {
1075 pub data_id: String,
1077 #[serde(skip_serializing_if = "Option::is_none")]
1079 pub access_type: Option<String>,
1080 #[serde(skip_serializing_if = "Option::is_none")]
1082 pub condition: Option<String>,
1083 #[serde(skip_serializing_if = "Option::is_none")]
1085 pub hit_condition: Option<String>,
1086}
1087
1088#[derive(Debug, Clone, Serialize, Deserialize)]
1090#[serde(rename_all = "camelCase")]
1091pub struct SetDataBreakpointsArguments {
1092 pub breakpoints: Vec<DataBreakpoint>,
1094}
1095
1096#[derive(Debug, Clone, Serialize, Deserialize)]
1098#[serde(rename_all = "camelCase")]
1099pub struct SetDataBreakpointsResponseBody {
1100 pub breakpoints: Vec<Breakpoint>,
1102}
1103
1104#[derive(Debug, Clone, Serialize, Deserialize)]
1110#[serde(rename_all = "camelCase")]
1111pub struct GotoArguments {
1112 pub thread_id: i64,
1114 pub target_id: i64,
1116}
1117
1118#[derive(Debug, Clone, Serialize, Deserialize)]
1124#[serde(rename_all = "camelCase")]
1125pub struct CancelArguments {
1126 #[serde(skip_serializing_if = "Option::is_none")]
1128 pub request_id: Option<i64>,
1129 #[serde(skip_serializing_if = "Option::is_none")]
1131 pub progress_id: Option<String>,
1132}
1133
1134#[derive(Debug, Clone, Serialize, Deserialize)]
1140#[serde(rename_all = "camelCase")]
1141pub struct RestartFrameArguments {
1142 pub frame_id: i64,
1144}
1145
1146#[derive(Debug, Clone, Serialize, Deserialize)]
1152#[serde(rename_all = "camelCase")]
1153pub struct TerminateThreadsArguments {
1154 #[serde(skip_serializing_if = "Option::is_none")]
1156 pub thread_ids: Option<Vec<i64>>,
1157}