1use crate::{
2 types::{
3 DataBreakpoint, ExceptionFilterOptions, ExceptionOptions, FunctionBreakpoint,
4 InstructionBreakpoint, Source, SourceBreakpoint, StackFrameFormat, SteppingGranularity,
5 ValueFormat,
6 },
7 utils::{eq_default, true_},
8 ProtocolMessageContent,
9};
10use serde::{Deserialize, Serialize};
11use serde_json::{Map, Value};
12use std::collections::HashMap;
13use typed_builder::TypedBuilder;
14
15#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
17#[serde(rename_all = "camelCase", tag = "command", content = "arguments")]
18pub enum Request {
19 Attach(AttachRequestArguments),
23
24 BreakpointLocations(BreakpointLocationsRequestArguments),
28
29 Cancel(CancelRequestArguments),
51
52 Completions(CompletionsRequestArguments),
56
57 ConfigurationDone,
63
64 Continue(ContinueRequestArguments),
66
67 DataBreakpointInfo(DataBreakpointInfoRequestArguments),
71
72 Disassemble(DisassembleRequestArguments),
76
77 Disconnect(DisconnectRequestArguments),
87
88 Evaluate(EvaluateRequestArguments),
92
93 ExceptionInfo(ExceptionInfoRequestArguments),
97
98 Goto(GotoRequestArguments),
108
109 GotoTargets(GotoTargetsRequestArguments),
115
116 Initialize(InitializeRequestArguments),
126
127 Launch(LaunchRequestArguments),
131
132 LoadedSources,
136
137 Modules(ModulesRequestArguments),
141
142 Next(NextRequestArguments),
146
147 Pause(PauseRequestArguments),
151
152 ReadMemory(ReadMemoryRequestArguments),
156
157 RestartFrame(RestartFrameRequestArguments),
163
164 ReverseContinue(ReverseContinueRequestArguments),
172
173 RunInTerminal(RunInTerminalRequestArguments),
179
180 Scopes(ScopesRequestArguments),
182
183 SetBreakpoints(SetBreakpointsRequestArguments),
189
190 SetDataBreakpoints(SetDataBreakpointsRequestArguments),
198
199 SetExceptionBreakpoints(SetExceptionBreakpointsRequestArguments),
205
206 SetExpression(SetExpressionRequestArguments),
214
215 SetFunctionBreakpoints(SetFunctionBreakpointsRequestArguments),
223
224 SetInstructionBreakpoints(SetInstructionBreakpointsRequestArguments),
232
233 SetVariable(SetVariableRequestArguments),
237
238 Source(SourceRequestArguments),
240
241 StackTrace(StackTraceRequestArguments),
245
246 StepBack(StepBackRequestArguments),
252
253 StepIn(StepInRequestArguments),
265
266 StepInTargets(StepInTargetsRequestArguments),
274
275 StepOut(StepOutRequestArguments),
279
280 Terminate(TerminateRequestArguments),
284
285 TerminateThreads(TerminateThreadsRequestArguments),
289
290 Threads,
292
293 Variables(VariablesRequestArguments),
297}
298impl From<Request> for ProtocolMessageContent {
299 fn from(request: Request) -> Self {
300 Self::Request(request)
301 }
302}
303
304#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
305pub struct AttachRequestArguments {
306 #[serde(rename = "__restart", skip_serializing_if = "Option::is_none")]
312 #[builder(default)]
313 pub restart: Option<Value>,
314
315 #[serde(skip)]
316 #[builder(default, setter(skip))]
317 private: (),
318}
319impl From<AttachRequestArguments> for Request {
320 fn from(args: AttachRequestArguments) -> Self {
321 Self::Attach(args)
322 }
323}
324impl From<AttachRequestArguments> for ProtocolMessageContent {
325 fn from(args: AttachRequestArguments) -> Self {
326 Self::from(Request::from(args))
327 }
328}
329
330#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
331pub struct BreakpointLocationsRequestArguments {
332 #[serde(rename = "source")]
334 pub source: Source,
335
336 #[serde(rename = "line")]
338 pub line: i32,
339
340 #[serde(rename = "column", skip_serializing_if = "Option::is_none")]
342 #[builder(default)]
343 pub column: Option<i32>,
344
345 #[serde(rename = "endLine", skip_serializing_if = "Option::is_none")]
347 #[builder(default)]
348 pub end_line: Option<i32>,
349
350 #[serde(rename = "endColumn", skip_serializing_if = "Option::is_none")]
352 #[builder(default)]
353 pub end_column: Option<i32>,
354
355 #[serde(skip)]
356 #[builder(default, setter(skip))]
357 private: (),
358}
359impl From<BreakpointLocationsRequestArguments> for Request {
360 fn from(args: BreakpointLocationsRequestArguments) -> Self {
361 Self::BreakpointLocations(args)
362 }
363}
364impl From<BreakpointLocationsRequestArguments> for ProtocolMessageContent {
365 fn from(args: BreakpointLocationsRequestArguments) -> Self {
366 Self::from(Request::from(args))
367 }
368}
369
370#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
371pub struct CancelRequestArguments {
372 #[serde(rename = "requestId", skip_serializing_if = "Option::is_none")]
376 #[builder(default)]
377 pub request_id: Option<i32>,
378
379 #[serde(rename = "progressId", skip_serializing_if = "Option::is_none")]
383 #[builder(default)]
384 pub progress_id: Option<String>,
385
386 #[serde(skip)]
387 #[builder(default, setter(skip))]
388 private: (),
389}
390impl From<CancelRequestArguments> for Request {
391 fn from(args: CancelRequestArguments) -> Self {
392 Self::Cancel(args)
393 }
394}
395impl From<CancelRequestArguments> for ProtocolMessageContent {
396 fn from(args: CancelRequestArguments) -> Self {
397 Self::from(Request::from(args))
398 }
399}
400
401#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
402pub struct CompletionsRequestArguments {
403 #[serde(rename = "frameId", skip_serializing_if = "Option::is_none")]
405 #[builder(default)]
406 pub frame_id: Option<i32>,
407
408 #[serde(rename = "text")]
410 pub text: String,
411
412 #[serde(rename = "column")]
414 pub column: i32,
415
416 #[serde(rename = "line", skip_serializing_if = "Option::is_none")]
418 #[builder(default)]
419 pub line: Option<i32>,
420
421 #[serde(skip)]
422 #[builder(default, setter(skip))]
423 private: (),
424}
425impl From<CompletionsRequestArguments> for Request {
426 fn from(args: CompletionsRequestArguments) -> Self {
427 Self::Completions(args)
428 }
429}
430impl From<CompletionsRequestArguments> for ProtocolMessageContent {
431 fn from(args: CompletionsRequestArguments) -> Self {
432 Self::from(Request::from(args))
433 }
434}
435
436#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
437pub struct ContinueRequestArguments {
438 #[serde(rename = "threadId")]
442 pub thread_id: i32,
443
444 #[serde(skip)]
445 #[builder(default, setter(skip))]
446 private: (),
447}
448impl From<ContinueRequestArguments> for Request {
449 fn from(args: ContinueRequestArguments) -> Self {
450 Self::Continue(args)
451 }
452}
453impl From<ContinueRequestArguments> for ProtocolMessageContent {
454 fn from(args: ContinueRequestArguments) -> Self {
455 Self::from(Request::from(args))
456 }
457}
458
459#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
460pub struct DataBreakpointInfoRequestArguments {
461 #[serde(rename = "variablesReference", skip_serializing_if = "Option::is_none")]
463 #[builder(default)]
464 pub variables_reference: Option<i32>,
465
466 #[serde(rename = "name")]
470 pub name: String,
471
472 #[serde(skip)]
473 #[builder(default, setter(skip))]
474 private: (),
475}
476impl From<DataBreakpointInfoRequestArguments> for Request {
477 fn from(args: DataBreakpointInfoRequestArguments) -> Self {
478 Self::DataBreakpointInfo(args)
479 }
480}
481impl From<DataBreakpointInfoRequestArguments> for ProtocolMessageContent {
482 fn from(args: DataBreakpointInfoRequestArguments) -> Self {
483 Self::from(Request::from(args))
484 }
485}
486
487#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
488pub struct DisassembleRequestArguments {
489 #[serde(rename = "memoryReference")]
491 pub memory_reference: String,
492
493 #[serde(rename = "offset", default, skip_serializing_if = "eq_default")]
495 #[builder(default)]
496 pub offset: i32,
497
498 #[serde(
500 rename = "instructionOffset",
501 default,
502 skip_serializing_if = "eq_default"
503 )]
504 #[builder(default)]
505 pub instruction_offset: i32,
506
507 #[serde(rename = "instructionCount")]
511 pub instruction_count: i32,
512
513 #[serde(rename = "resolveSymbols", default, skip_serializing_if = "eq_default")]
515 #[builder(default)]
516 pub resolve_symbols: bool,
517
518 #[serde(skip)]
519 #[builder(default, setter(skip))]
520 private: (),
521}
522impl From<DisassembleRequestArguments> for Request {
523 fn from(args: DisassembleRequestArguments) -> Self {
524 Self::Disassemble(args)
525 }
526}
527impl From<DisassembleRequestArguments> for ProtocolMessageContent {
528 fn from(args: DisassembleRequestArguments) -> Self {
529 Self::from(Request::from(args))
530 }
531}
532
533#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
534pub struct DisconnectRequestArguments {
535 #[serde(rename = "restart", default, skip_serializing_if = "eq_default")]
537 #[builder(default)]
538 pub restart: bool,
539
540 #[serde(rename = "terminateDebuggee", skip_serializing_if = "Option::is_none")]
546 #[builder(default)]
547 pub terminate_debuggee: Option<bool>,
548
549 #[serde(
555 rename = "suspendDebuggee",
556 default,
557 skip_serializing_if = "eq_default"
558 )]
559 #[builder(default)]
560 pub suspend_debuggee: bool,
561
562 #[serde(skip)]
563 #[builder(default, setter(skip))]
564 private: (),
565}
566impl From<DisconnectRequestArguments> for Request {
567 fn from(args: DisconnectRequestArguments) -> Self {
568 Self::Disconnect(args)
569 }
570}
571impl From<DisconnectRequestArguments> for ProtocolMessageContent {
572 fn from(args: DisconnectRequestArguments) -> Self {
573 Self::from(Request::from(args))
574 }
575}
576
577#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
578pub struct EvaluateRequestArguments {
579 #[serde(rename = "expression")]
581 pub expression: String,
582
583 #[serde(rename = "frameId", skip_serializing_if = "Option::is_none")]
585 #[builder(default)]
586 pub frame_id: Option<i32>,
587
588 #[serde(rename = "context", skip_serializing_if = "Option::is_none")]
590 #[builder(default)]
591 pub context: Option<EvaluateRequestContext>,
592
593 #[serde(rename = "format", skip_serializing_if = "Option::is_none")]
597 #[builder(default)]
598 pub format: Option<ValueFormat>,
599
600 #[serde(skip)]
601 #[builder(default, setter(skip))]
602 private: (),
603}
604impl From<EvaluateRequestArguments> for Request {
605 fn from(args: EvaluateRequestArguments) -> Self {
606 Self::Evaluate(args)
607 }
608}
609impl From<EvaluateRequestArguments> for ProtocolMessageContent {
610 fn from(args: EvaluateRequestArguments) -> Self {
611 Self::from(Request::from(args))
612 }
613}
614
615#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
616#[serde(rename_all = "lowercase")]
617pub enum EvaluateRequestContext {
618 Watch,
620
621 REPL,
623
624 Hover,
626
627 Clipboard,
631}
632
633#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
634pub struct ExceptionInfoRequestArguments {
635 #[serde(rename = "threadId")]
637 pub thread_id: i32,
638
639 #[serde(skip)]
640 #[builder(default, setter(skip))]
641 private: (),
642}
643impl From<ExceptionInfoRequestArguments> for Request {
644 fn from(args: ExceptionInfoRequestArguments) -> Self {
645 Self::ExceptionInfo(args)
646 }
647}
648impl From<ExceptionInfoRequestArguments> for ProtocolMessageContent {
649 fn from(args: ExceptionInfoRequestArguments) -> Self {
650 Self::from(Request::from(args))
651 }
652}
653
654#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
655pub struct GotoRequestArguments {
656 #[serde(rename = "threadId")]
658 pub thread_id: i32,
659
660 #[serde(rename = "targetId")]
662 pub target_id: i32,
663
664 #[serde(skip)]
665 #[builder(default, setter(skip))]
666 private: (),
667}
668impl From<GotoRequestArguments> for Request {
669 fn from(args: GotoRequestArguments) -> Self {
670 Self::Goto(args)
671 }
672}
673impl From<GotoRequestArguments> for ProtocolMessageContent {
674 fn from(args: GotoRequestArguments) -> Self {
675 Self::from(Request::from(args))
676 }
677}
678
679#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
680pub struct GotoTargetsRequestArguments {
681 #[serde(rename = "source")]
683 pub source: Source,
684
685 #[serde(rename = "line")]
687 pub line: i32,
688
689 #[serde(rename = "column", skip_serializing_if = "Option::is_none")]
691 #[builder(default)]
692 pub column: Option<i32>,
693
694 #[serde(skip)]
695 #[builder(default, setter(skip))]
696 private: (),
697}
698impl From<GotoTargetsRequestArguments> for Request {
699 fn from(args: GotoTargetsRequestArguments) -> Self {
700 Self::GotoTargets(args)
701 }
702}
703impl From<GotoTargetsRequestArguments> for ProtocolMessageContent {
704 fn from(args: GotoTargetsRequestArguments) -> Self {
705 Self::from(Request::from(args))
706 }
707}
708
709#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
710pub struct InitializeRequestArguments {
711 #[serde(rename = "clientID", skip_serializing_if = "Option::is_none")]
713 #[builder(default)]
714 pub client_id: Option<String>,
715
716 #[serde(rename = "clientName", skip_serializing_if = "Option::is_none")]
718 #[builder(default)]
719 pub client_name: Option<String>,
720
721 #[serde(rename = "adapterID")]
723 pub adapter_id: String,
724
725 #[serde(rename = "locale", skip_serializing_if = "Option::is_none")]
727 #[builder(default)]
728 pub locale: Option<String>,
729
730 #[serde(rename = "linesStartAt1", default = "true_")]
732 #[builder(default = true)]
733 pub lines_start_at_1: bool,
734
735 #[serde(rename = "columnsStartAt1", default = "true_")]
737 #[builder(default = true)]
738 pub columns_start_at_1: bool,
739
740 #[serde(rename = "pathFormat", default, skip_serializing_if = "eq_default")]
742 #[builder(default)]
743 pub path_format: PathFormat,
744
745 #[serde(
747 rename = "supportsVariableType",
748 default,
749 skip_serializing_if = "eq_default"
750 )]
751 #[builder(default)]
752 pub supports_variable_type: bool,
753
754 #[serde(
756 rename = "supportsVariablePaging",
757 default,
758 skip_serializing_if = "eq_default"
759 )]
760 #[builder(default)]
761 pub supports_variable_paging: bool,
762
763 #[serde(
765 rename = "supportsRunInTerminalRequest",
766 default,
767 skip_serializing_if = "eq_default"
768 )]
769 #[builder(default)]
770 pub supports_run_in_terminal_request: bool,
771
772 #[serde(
774 rename = "supportsMemoryReferences",
775 default,
776 skip_serializing_if = "eq_default"
777 )]
778 #[builder(default)]
779 pub supports_memory_references: bool,
780
781 #[serde(
783 rename = "supportsProgressReporting",
784 default,
785 skip_serializing_if = "eq_default"
786 )]
787 #[builder(default)]
788 pub supports_progress_reporting: bool,
789
790 #[serde(
792 rename = "supportsInvalidatedEvent",
793 default,
794 skip_serializing_if = "eq_default"
795 )]
796 #[builder(default)]
797 pub supports_invalidated_event: bool,
798
799 #[serde(skip)]
800 #[builder(default, setter(skip))]
801 private: (),
802}
803impl From<InitializeRequestArguments> for Request {
804 fn from(args: InitializeRequestArguments) -> Self {
805 Self::Initialize(args)
806 }
807}
808impl From<InitializeRequestArguments> for ProtocolMessageContent {
809 fn from(args: InitializeRequestArguments) -> Self {
810 Self::from(Request::from(args))
811 }
812}
813
814#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
815#[serde(rename_all = "lowercase")]
816pub enum PathFormat {
817 Path,
818 URI,
819}
820
821impl Default for PathFormat {
822 fn default() -> Self {
823 PathFormat::Path
824 }
825}
826
827#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
828pub struct LaunchRequestArguments {
829 #[serde(rename = "noDebug", default, skip_serializing_if = "eq_default")]
831 #[builder(default)]
832 pub no_debug: bool,
833
834 #[serde(rename = "__restart", skip_serializing_if = "Option::is_none")]
840 #[builder(default)]
841 pub restart: Option<Value>,
842
843 #[serde(flatten)]
845 #[builder(default)]
846 pub additional_attributes: Map<String, Value>,
847
848 #[serde(skip)]
849 #[builder(default, setter(skip))]
850 private: (),
851}
852impl From<LaunchRequestArguments> for Request {
853 fn from(args: LaunchRequestArguments) -> Self {
854 Self::Launch(args)
855 }
856}
857impl From<LaunchRequestArguments> for ProtocolMessageContent {
858 fn from(args: LaunchRequestArguments) -> Self {
859 Self::from(Request::from(args))
860 }
861}
862
863#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
864pub struct ModulesRequestArguments {
865 #[serde(rename = "startModule", default, skip_serializing_if = "eq_default")]
867 #[builder(default)]
868 pub start_module: i32,
869
870 #[serde(rename = "moduleCount", default, skip_serializing_if = "eq_default")]
872 #[builder(default)]
873 pub module_count: i32,
874
875 #[serde(skip)]
876 #[builder(default, setter(skip))]
877 private: (),
878}
879impl From<ModulesRequestArguments> for Request {
880 fn from(args: ModulesRequestArguments) -> Self {
881 Self::Modules(args)
882 }
883}
884impl From<ModulesRequestArguments> for ProtocolMessageContent {
885 fn from(args: ModulesRequestArguments) -> Self {
886 Self::from(Request::from(args))
887 }
888}
889
890#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
891pub struct NextRequestArguments {
892 #[serde(rename = "threadId")]
894 pub thread_id: i32,
895
896 #[serde(rename = "granularity", default, skip_serializing_if = "eq_default")]
898 #[builder(default)]
899 pub granularity: SteppingGranularity,
900
901 #[serde(skip)]
902 #[builder(default, setter(skip))]
903 private: (),
904}
905impl From<NextRequestArguments> for Request {
906 fn from(args: NextRequestArguments) -> Self {
907 Self::Next(args)
908 }
909}
910impl From<NextRequestArguments> for ProtocolMessageContent {
911 fn from(args: NextRequestArguments) -> Self {
912 Self::from(Request::from(args))
913 }
914}
915
916#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
917pub struct PauseRequestArguments {
918 #[serde(rename = "threadId")]
920 pub thread_id: i32,
921
922 #[serde(skip)]
923 #[builder(default, setter(skip))]
924 private: (),
925}
926impl From<PauseRequestArguments> for Request {
927 fn from(args: PauseRequestArguments) -> Self {
928 Self::Pause(args)
929 }
930}
931impl From<PauseRequestArguments> for ProtocolMessageContent {
932 fn from(args: PauseRequestArguments) -> Self {
933 Self::from(Request::from(args))
934 }
935}
936
937#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
938pub struct ReadMemoryRequestArguments {
939 #[serde(rename = "memoryReference")]
941 pub memory_reference: String,
942
943 #[serde(rename = "offset", default, skip_serializing_if = "eq_default")]
945 #[builder(default)]
946 pub offset: i32,
947
948 #[serde(rename = "count")]
950 pub count: i32,
951
952 #[serde(skip)]
953 #[builder(default, setter(skip))]
954 private: (),
955}
956impl From<ReadMemoryRequestArguments> for Request {
957 fn from(args: ReadMemoryRequestArguments) -> Self {
958 Self::ReadMemory(args)
959 }
960}
961impl From<ReadMemoryRequestArguments> for ProtocolMessageContent {
962 fn from(args: ReadMemoryRequestArguments) -> Self {
963 Self::from(Request::from(args))
964 }
965}
966
967#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
968pub struct RestartFrameRequestArguments {
969 #[serde(rename = "frameId")]
971 pub frame_id: i32,
972
973 #[serde(skip)]
974 #[builder(default, setter(skip))]
975 private: (),
976}
977impl From<RestartFrameRequestArguments> for Request {
978 fn from(args: RestartFrameRequestArguments) -> Self {
979 Self::RestartFrame(args)
980 }
981}
982impl From<RestartFrameRequestArguments> for ProtocolMessageContent {
983 fn from(args: RestartFrameRequestArguments) -> Self {
984 Self::from(Request::from(args))
985 }
986}
987
988#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
996pub struct ReverseContinueRequestArguments {
997 #[serde(rename = "threadId")]
999 pub thread_id: i32,
1000
1001 #[serde(skip)]
1002 #[builder(default, setter(skip))]
1003 private: (),
1004}
1005impl From<ReverseContinueRequestArguments> for Request {
1006 fn from(args: ReverseContinueRequestArguments) -> Self {
1007 Self::ReverseContinue(args)
1008 }
1009}
1010impl From<ReverseContinueRequestArguments> for ProtocolMessageContent {
1011 fn from(args: ReverseContinueRequestArguments) -> Self {
1012 Self::from(Request::from(args))
1013 }
1014}
1015
1016#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
1017pub struct RunInTerminalRequestArguments {
1018 #[serde(rename = "kind", skip_serializing_if = "Option::is_none")]
1020 #[builder(default)]
1021 pub kind: Option<TerminalKind>,
1022
1023 #[serde(rename = "title", skip_serializing_if = "Option::is_none")]
1025 #[builder(default)]
1026 pub title: Option<String>,
1027
1028 #[serde(rename = "cwd")]
1030 pub cwd: String,
1031
1032 #[serde(rename = "args")]
1034 pub args: Vec<String>,
1035
1036 #[serde(rename = "env", default, skip_serializing_if = "HashMap::is_empty")]
1038 #[builder(default)]
1039 pub env: HashMap<String, Option<String>>,
1040
1041 #[serde(skip)]
1042 #[builder(default, setter(skip))]
1043 private: (),
1044}
1045impl From<RunInTerminalRequestArguments> for Request {
1046 fn from(args: RunInTerminalRequestArguments) -> Self {
1047 Self::RunInTerminal(args)
1048 }
1049}
1050impl From<RunInTerminalRequestArguments> for ProtocolMessageContent {
1051 fn from(args: RunInTerminalRequestArguments) -> Self {
1052 Self::from(Request::from(args))
1053 }
1054}
1055
1056#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
1057#[serde(rename_all = "lowercase")]
1058pub enum TerminalKind {
1059 Integrated,
1060
1061 External,
1062}
1063
1064#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
1065pub struct ScopesRequestArguments {
1066 #[serde(rename = "frameId")]
1068 pub frame_id: i32,
1069
1070 #[serde(skip)]
1071 #[builder(default, setter(skip))]
1072 private: (),
1073}
1074impl From<ScopesRequestArguments> for Request {
1075 fn from(args: ScopesRequestArguments) -> Self {
1076 Self::Scopes(args)
1077 }
1078}
1079impl From<ScopesRequestArguments> for ProtocolMessageContent {
1080 fn from(args: ScopesRequestArguments) -> Self {
1081 Self::from(Request::from(args))
1082 }
1083}
1084
1085#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
1086pub struct SetBreakpointsRequestArguments {
1087 #[serde(rename = "source")]
1089 pub source: Source,
1090
1091 #[serde(rename = "breakpoints", default, skip_serializing_if = "Vec::is_empty")]
1093 #[builder(default)]
1094 pub breakpoints: Vec<SourceBreakpoint>,
1095
1096 #[serde(rename = "lines", default, skip_serializing_if = "Vec::is_empty")]
1098 #[builder(default)]
1099 pub lines: Vec<i32>,
1100
1101 #[serde(rename = "sourceModified", default, skip_serializing_if = "eq_default")]
1103 #[builder(default)]
1104 pub source_modified: bool,
1105
1106 #[serde(skip)]
1107 #[builder(default, setter(skip))]
1108 private: (),
1109}
1110impl From<SetBreakpointsRequestArguments> for Request {
1111 fn from(args: SetBreakpointsRequestArguments) -> Self {
1112 Self::SetBreakpoints(args)
1113 }
1114}
1115impl From<SetBreakpointsRequestArguments> for ProtocolMessageContent {
1116 fn from(args: SetBreakpointsRequestArguments) -> Self {
1117 Self::from(Request::from(args))
1118 }
1119}
1120
1121#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
1122pub struct SetDataBreakpointsRequestArguments {
1123 #[serde(rename = "breakpoints")]
1125 pub breakpoints: Vec<DataBreakpoint>,
1126
1127 #[serde(skip)]
1128 #[builder(default, setter(skip))]
1129 private: (),
1130}
1131impl From<SetDataBreakpointsRequestArguments> for Request {
1132 fn from(args: SetDataBreakpointsRequestArguments) -> Self {
1133 Self::SetDataBreakpoints(args)
1134 }
1135}
1136impl From<SetDataBreakpointsRequestArguments> for ProtocolMessageContent {
1137 fn from(args: SetDataBreakpointsRequestArguments) -> Self {
1138 Self::from(Request::from(args))
1139 }
1140}
1141
1142#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
1143pub struct SetExceptionBreakpointsRequestArguments {
1144 #[serde(rename = "filters")]
1146 pub filters: Vec<String>,
1147
1148 #[serde(
1150 rename = "filterOptions",
1151 default,
1152 skip_serializing_if = "Vec::is_empty"
1153 )]
1154 #[builder(default)]
1155 pub filter_options: Vec<ExceptionFilterOptions>,
1156
1157 #[serde(
1161 rename = "exceptionOptions",
1162 default,
1163 skip_serializing_if = "Vec::is_empty"
1164 )]
1165 #[builder(default)]
1166 pub exception_options: Vec<ExceptionOptions>,
1167
1168 #[serde(skip)]
1169 #[builder(default, setter(skip))]
1170 private: (),
1171}
1172impl From<SetExceptionBreakpointsRequestArguments> for Request {
1173 fn from(args: SetExceptionBreakpointsRequestArguments) -> Self {
1174 Self::SetExceptionBreakpoints(args)
1175 }
1176}
1177impl From<SetExceptionBreakpointsRequestArguments> for ProtocolMessageContent {
1178 fn from(args: SetExceptionBreakpointsRequestArguments) -> Self {
1179 Self::from(Request::from(args))
1180 }
1181}
1182
1183#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
1184pub struct SetExpressionRequestArguments {
1185 #[serde(rename = "expression")]
1187 pub expression: String,
1188
1189 #[serde(rename = "value")]
1191 pub value: String,
1192
1193 #[serde(rename = "frameId", skip_serializing_if = "Option::is_none")]
1195 #[builder(default)]
1196 pub frame_id: Option<i32>,
1197
1198 #[serde(rename = "format", skip_serializing_if = "Option::is_none")]
1200 #[builder(default)]
1201 pub format: Option<ValueFormat>,
1202
1203 #[serde(skip)]
1204 #[builder(default, setter(skip))]
1205 private: (),
1206}
1207impl From<SetExpressionRequestArguments> for Request {
1208 fn from(args: SetExpressionRequestArguments) -> Self {
1209 Self::SetExpression(args)
1210 }
1211}
1212impl From<SetExpressionRequestArguments> for ProtocolMessageContent {
1213 fn from(args: SetExpressionRequestArguments) -> Self {
1214 Self::from(Request::from(args))
1215 }
1216}
1217
1218#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
1219pub struct SetFunctionBreakpointsRequestArguments {
1220 #[serde(rename = "breakpoints")]
1222 pub breakpoints: Vec<FunctionBreakpoint>,
1223
1224 #[serde(skip)]
1225 #[builder(default, setter(skip))]
1226 private: (),
1227}
1228impl From<SetFunctionBreakpointsRequestArguments> for Request {
1229 fn from(args: SetFunctionBreakpointsRequestArguments) -> Self {
1230 Self::SetFunctionBreakpoints(args)
1231 }
1232}
1233impl From<SetFunctionBreakpointsRequestArguments> for ProtocolMessageContent {
1234 fn from(args: SetFunctionBreakpointsRequestArguments) -> Self {
1235 Self::from(Request::from(args))
1236 }
1237}
1238
1239#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
1240pub struct SetInstructionBreakpointsRequestArguments {
1241 #[serde(rename = "breakpoints")]
1243 pub breakpoints: Vec<InstructionBreakpoint>,
1244
1245 #[serde(skip)]
1246 #[builder(default, setter(skip))]
1247 private: (),
1248}
1249impl From<SetInstructionBreakpointsRequestArguments> for Request {
1250 fn from(args: SetInstructionBreakpointsRequestArguments) -> Self {
1251 Self::SetInstructionBreakpoints(args)
1252 }
1253}
1254impl From<SetInstructionBreakpointsRequestArguments> for ProtocolMessageContent {
1255 fn from(args: SetInstructionBreakpointsRequestArguments) -> Self {
1256 Self::from(Request::from(args))
1257 }
1258}
1259
1260#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
1261pub struct SetVariableRequestArguments {
1262 #[serde(rename = "variablesReference")]
1264 pub variables_reference: i32,
1265
1266 #[serde(rename = "name")]
1268 pub name: String,
1269
1270 #[serde(rename = "value")]
1272 pub value: String,
1273
1274 #[serde(rename = "format", skip_serializing_if = "Option::is_none")]
1276 #[builder(default)]
1277 pub format: Option<ValueFormat>,
1278
1279 #[serde(skip)]
1280 #[builder(default, setter(skip))]
1281 private: (),
1282}
1283impl From<SetVariableRequestArguments> for Request {
1284 fn from(args: SetVariableRequestArguments) -> Self {
1285 Self::SetVariable(args)
1286 }
1287}
1288impl From<SetVariableRequestArguments> for ProtocolMessageContent {
1289 fn from(args: SetVariableRequestArguments) -> Self {
1290 Self::from(Request::from(args))
1291 }
1292}
1293
1294#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
1295pub struct SourceRequestArguments {
1296 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
1298 #[builder(default)]
1299 pub source: Option<Source>,
1300
1301 #[serde(rename = "sourceReference")]
1305 pub source_reference: i32,
1306
1307 #[serde(skip)]
1308 #[builder(default, setter(skip))]
1309 private: (),
1310}
1311impl From<SourceRequestArguments> for Request {
1312 fn from(args: SourceRequestArguments) -> Self {
1313 Self::Source(args)
1314 }
1315}
1316impl From<SourceRequestArguments> for ProtocolMessageContent {
1317 fn from(args: SourceRequestArguments) -> Self {
1318 Self::from(Request::from(args))
1319 }
1320}
1321
1322#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
1323pub struct StackTraceRequestArguments {
1324 #[serde(rename = "threadId")]
1326 pub thread_id: i32,
1327
1328 #[serde(rename = "startFrame", default, skip_serializing_if = "eq_default")]
1330 #[builder(default)]
1331 pub start_frame: i32,
1332
1333 #[serde(rename = "levels", default, skip_serializing_if = "eq_default")]
1335 #[builder(default)]
1336 pub levels: i32,
1337
1338 #[serde(rename = "format", skip_serializing_if = "Option::is_none")]
1342 #[builder(default)]
1343 pub format: Option<StackFrameFormat>,
1344
1345 #[serde(skip)]
1346 #[builder(default, setter(skip))]
1347 private: (),
1348}
1349impl From<StackTraceRequestArguments> for Request {
1350 fn from(args: StackTraceRequestArguments) -> Self {
1351 Self::StackTrace(args)
1352 }
1353}
1354impl From<StackTraceRequestArguments> for ProtocolMessageContent {
1355 fn from(args: StackTraceRequestArguments) -> Self {
1356 Self::from(Request::from(args))
1357 }
1358}
1359
1360#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
1361pub struct StepBackRequestArguments {
1362 #[serde(rename = "threadId")]
1364 pub thread_id: i32,
1365
1366 #[serde(rename = "granularity", default, skip_serializing_if = "eq_default")]
1368 #[builder(default)]
1369 pub granularity: SteppingGranularity,
1370
1371 #[serde(skip)]
1372 #[builder(default, setter(skip))]
1373 private: (),
1374}
1375impl From<StepBackRequestArguments> for Request {
1376 fn from(args: StepBackRequestArguments) -> Self {
1377 Self::StepBack(args)
1378 }
1379}
1380impl From<StepBackRequestArguments> for ProtocolMessageContent {
1381 fn from(args: StepBackRequestArguments) -> Self {
1382 Self::from(Request::from(args))
1383 }
1384}
1385
1386#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
1387pub struct StepInRequestArguments {
1388 #[serde(rename = "threadId")]
1390 pub thread_id: i32,
1391
1392 #[serde(rename = "targetId", skip_serializing_if = "Option::is_none")]
1394 #[builder(default)]
1395 pub target_id: Option<i32>,
1396
1397 #[serde(rename = "granularity", default, skip_serializing_if = "eq_default")]
1399 #[builder(default)]
1400 pub granularity: SteppingGranularity,
1401
1402 #[serde(skip)]
1403 #[builder(default, setter(skip))]
1404 private: (),
1405}
1406impl From<StepInRequestArguments> for Request {
1407 fn from(args: StepInRequestArguments) -> Self {
1408 Self::StepIn(args)
1409 }
1410}
1411impl From<StepInRequestArguments> for ProtocolMessageContent {
1412 fn from(args: StepInRequestArguments) -> Self {
1413 Self::from(Request::from(args))
1414 }
1415}
1416
1417#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
1418pub struct StepInTargetsRequestArguments {
1419 #[serde(rename = "frameId")]
1421 pub frame_id: i32,
1422
1423 #[serde(skip)]
1424 #[builder(default, setter(skip))]
1425 private: (),
1426}
1427impl From<StepInTargetsRequestArguments> for Request {
1428 fn from(args: StepInTargetsRequestArguments) -> Self {
1429 Self::StepInTargets(args)
1430 }
1431}
1432impl From<StepInTargetsRequestArguments> for ProtocolMessageContent {
1433 fn from(args: StepInTargetsRequestArguments) -> Self {
1434 Self::from(Request::from(args))
1435 }
1436}
1437
1438#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
1439pub struct StepOutRequestArguments {
1440 #[serde(rename = "threadId")]
1442 pub thread_id: i32,
1443
1444 #[serde(rename = "granularity", default, skip_serializing_if = "eq_default")]
1446 #[builder(default)]
1447 pub granularity: SteppingGranularity,
1448
1449 #[serde(skip)]
1450 #[builder(default, setter(skip))]
1451 private: (),
1452}
1453impl From<StepOutRequestArguments> for Request {
1454 fn from(args: StepOutRequestArguments) -> Self {
1455 Self::StepOut(args)
1456 }
1457}
1458impl From<StepOutRequestArguments> for ProtocolMessageContent {
1459 fn from(args: StepOutRequestArguments) -> Self {
1460 Self::from(Request::from(args))
1461 }
1462}
1463
1464#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
1465pub struct TerminateRequestArguments {
1466 #[serde(rename = "restart", default, skip_serializing_if = "eq_default")]
1468 #[builder(default)]
1469 pub restart: bool,
1470
1471 #[serde(skip)]
1472 #[builder(default, setter(skip))]
1473 private: (),
1474}
1475impl From<TerminateRequestArguments> for Request {
1476 fn from(args: TerminateRequestArguments) -> Self {
1477 Self::Terminate(args)
1478 }
1479}
1480impl From<TerminateRequestArguments> for ProtocolMessageContent {
1481 fn from(args: TerminateRequestArguments) -> Self {
1482 Self::from(Request::from(args))
1483 }
1484}
1485
1486#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
1487pub struct TerminateThreadsRequestArguments {
1488 #[serde(rename = "threadIds", default, skip_serializing_if = "Vec::is_empty")]
1490 #[builder(default)]
1491 pub thread_ids: Vec<i32>,
1492
1493 #[serde(skip)]
1494 #[builder(default, setter(skip))]
1495 private: (),
1496}
1497impl From<TerminateThreadsRequestArguments> for Request {
1498 fn from(args: TerminateThreadsRequestArguments) -> Self {
1499 Self::TerminateThreads(args)
1500 }
1501}
1502impl From<TerminateThreadsRequestArguments> for ProtocolMessageContent {
1503 fn from(args: TerminateThreadsRequestArguments) -> Self {
1504 Self::from(Request::from(args))
1505 }
1506}
1507
1508#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TypedBuilder)]
1509pub struct VariablesRequestArguments {
1510 #[serde(rename = "variablesReference")]
1512 pub variables_reference: i32,
1513
1514 #[serde(rename = "filter", skip_serializing_if = "Option::is_none")]
1516 #[builder(default)]
1517 pub filter: Option<VariablesFilter>,
1518
1519 #[serde(rename = "start", default, skip_serializing_if = "eq_default")]
1521 #[builder(default)]
1522 pub start: i32,
1523
1524 #[serde(rename = "count", default, skip_serializing_if = "eq_default")]
1526 #[builder(default)]
1527 pub count: i32,
1528
1529 #[serde(rename = "format", skip_serializing_if = "Option::is_none")]
1533 #[builder(default)]
1534 pub format: Option<ValueFormat>,
1535
1536 #[serde(skip)]
1537 #[builder(default, setter(skip))]
1538 private: (),
1539}
1540impl From<VariablesRequestArguments> for Request {
1541 fn from(args: VariablesRequestArguments) -> Self {
1542 Self::Variables(args)
1543 }
1544}
1545impl From<VariablesRequestArguments> for ProtocolMessageContent {
1546 fn from(args: VariablesRequestArguments) -> Self {
1547 Self::from(Request::from(args))
1548 }
1549}
1550
1551#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
1552#[serde(rename_all = "lowercase")]
1553pub enum VariablesFilter {
1554 Indexed,
1555
1556 Named,
1557}