@@ -27,9 +27,11 @@ pub trait Request {
2727pub struct ColumnDescriptor {
2828 pub attribute_name: String,
2929 pub label: String,
30+ #[serde(skip_serializing_if = "Option::is_none")]
3031 pub format: Option<String>,
31− #[serde(rename = "type")]
32+ #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
3233 pub ty: Option<String>,
34+ #[serde(skip_serializing_if = "Option::is_none")]
3335 pub width: Option<usize>,
3436}
3537
@@ -38,52 +40,94 @@ pub struct ColumnDescriptor {
3840pub struct ExceptionBreakpointsFilter {
3941 pub filter: String,
4042 pub label: String,
43+ #[serde(skip_serializing_if = "Option::is_none")]
4144 pub description: Option<String>,
45+ #[serde(skip_serializing_if = "Option::is_none")]
4246 pub default: Option<bool>,
47+ #[serde(skip_serializing_if = "Option::is_none")]
4348 pub supports_condition: Option<bool>,
49+ #[serde(skip_serializing_if = "Option::is_none")]
4450 pub condition_description: Option<String>,
4551}
4652
4753#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
4854#[serde(rename_all = "camelCase")]
4955pub struct DebuggerCapabilities {
56+ #[serde(skip_serializing_if = "Option::is_none")]
5057 pub supports_configuration_done_request: Option<bool>,
58+ #[serde(skip_serializing_if = "Option::is_none")]
5159 pub supports_function_breakpoints: Option<bool>,
60+ #[serde(skip_serializing_if = "Option::is_none")]
5261 pub supports_conditional_breakpoints: Option<bool>,
62+ #[serde(skip_serializing_if = "Option::is_none")]
5363 pub supports_hit_conditional_breakpoints: Option<bool>,
64+ #[serde(skip_serializing_if = "Option::is_none")]
5465 pub supports_evaluate_for_hovers: Option<bool>,
66+ #[serde(skip_serializing_if = "Option::is_none")]
5567 pub supports_step_back: Option<bool>,
68+ #[serde(skip_serializing_if = "Option::is_none")]
5669 pub supports_set_variable: Option<bool>,
70+ #[serde(skip_serializing_if = "Option::is_none")]
5771 pub supports_restart_frame: Option<bool>,
72+ #[serde(skip_serializing_if = "Option::is_none")]
5873 pub supports_goto_targets_request: Option<bool>,
74+ #[serde(skip_serializing_if = "Option::is_none")]
5975 pub supports_step_in_targets_request: Option<bool>,
76+ #[serde(skip_serializing_if = "Option::is_none")]
6077 pub supports_completions_request: Option<bool>,
78+ #[serde(skip_serializing_if = "Option::is_none")]
6179 pub supports_modules_request: Option<bool>,
80+ #[serde(skip_serializing_if = "Option::is_none")]
6281 pub supports_restart_request: Option<bool>,
82+ #[serde(skip_serializing_if = "Option::is_none")]
6383 pub supports_exception_options: Option<bool>,
84+ #[serde(skip_serializing_if = "Option::is_none")]
6485 pub supports_value_formatting_options: Option<bool>,
86+ #[serde(skip_serializing_if = "Option::is_none")]
6587 pub supports_exception_info_request: Option<bool>,
88+ #[serde(skip_serializing_if = "Option::is_none")]
6689 pub support_terminate_debuggee: Option<bool>,
90+ #[serde(skip_serializing_if = "Option::is_none")]
6791 pub support_suspend_debuggee: Option<bool>,
92+ #[serde(skip_serializing_if = "Option::is_none")]
6893 pub supports_delayed_stack_trace_loading: Option<bool>,
94+ #[serde(skip_serializing_if = "Option::is_none")]
6995 pub supports_loaded_sources_request: Option<bool>,
96+ #[serde(skip_serializing_if = "Option::is_none")]
7097 pub supports_log_points: Option<bool>,
98+ #[serde(skip_serializing_if = "Option::is_none")]
7199 pub supports_terminate_threads_request: Option<bool>,
100+ #[serde(skip_serializing_if = "Option::is_none")]
72101 pub supports_set_expression: Option<bool>,
102+ #[serde(skip_serializing_if = "Option::is_none")]
73103 pub supports_terminate_request: Option<bool>,
104+ #[serde(skip_serializing_if = "Option::is_none")]
74105 pub supports_data_breakpoints: Option<bool>,
106+ #[serde(skip_serializing_if = "Option::is_none")]
75107 pub supports_read_memory_request: Option<bool>,
108+ #[serde(skip_serializing_if = "Option::is_none")]
76109 pub supports_write_memory_request: Option<bool>,
110+ #[serde(skip_serializing_if = "Option::is_none")]
77111 pub supports_disassemble_request: Option<bool>,
112+ #[serde(skip_serializing_if = "Option::is_none")]
78113 pub supports_cancel_request: Option<bool>,
114+ #[serde(skip_serializing_if = "Option::is_none")]
79115 pub supports_breakpoint_locations_request: Option<bool>,
116+ #[serde(skip_serializing_if = "Option::is_none")]
80117 pub supports_clipboard_context: Option<bool>,
118+ #[serde(skip_serializing_if = "Option::is_none")]
81119 pub supports_stepping_granularity: Option<bool>,
120+ #[serde(skip_serializing_if = "Option::is_none")]
82121 pub supports_instruction_breakpoints: Option<bool>,
122+ #[serde(skip_serializing_if = "Option::is_none")]
83123 pub supports_exception_filter_options: Option<bool>,
124+ #[serde(skip_serializing_if = "Option::is_none")]
84125 pub exception_breakpoint_filters: Option<Vec<ExceptionBreakpointsFilter>>,
126+ #[serde(skip_serializing_if = "Option::is_none")]
85127 pub completion_trigger_characters: Option<Vec<String>>,
128+ #[serde(skip_serializing_if = "Option::is_none")]
86129 pub additional_module_columns: Option<Vec<ColumnDescriptor>>,
130+ #[serde(skip_serializing_if = "Option::is_none")]
87131 pub supported_checksum_algorithms: Option<Vec<String>>,
88132}
89133
@@ -97,13 +141,21 @@ pub struct Checksum {
97141#[derive(Debug, Default, PartialEq, Clone, Deserialize, Serialize)]
98142#[serde(rename_all = "camelCase")]
99143pub struct Source {
144+ #[serde(skip_serializing_if = "Option::is_none")]
100145 pub name: Option<String>,
146+ #[serde(skip_serializing_if = "Option::is_none")]
101147 pub path: Option<PathBuf>,
148+ #[serde(skip_serializing_if = "Option::is_none")]
102149 pub source_reference: Option<usize>,
150+ #[serde(skip_serializing_if = "Option::is_none")]
103151 pub presentation_hint: Option<String>,
152+ #[serde(skip_serializing_if = "Option::is_none")]
104153 pub origin: Option<String>,
154+ #[serde(skip_serializing_if = "Option::is_none")]
105155 pub sources: Option<Vec<Source>>,
156+ #[serde(skip_serializing_if = "Option::is_none")]
106157 pub adapter_data: Option<Value>,
158+ #[serde(skip_serializing_if = "Option::is_none")]
107159 pub checksums: Option<Vec<Checksum>>,
108160}
109161
@@ -111,36 +163,56 @@ pub struct Source {
111163#[serde(rename_all = "camelCase")]
112164pub struct SourceBreakpoint {
113165 pub line: usize,
166+ #[serde(skip_serializing_if = "Option::is_none")]
114167 pub column: Option<usize>,
168+ #[serde(skip_serializing_if = "Option::is_none")]
115169 pub condition: Option<String>,
170+ #[serde(skip_serializing_if = "Option::is_none")]
116171 pub hit_condition: Option<String>,
172+ #[serde(skip_serializing_if = "Option::is_none")]
117173 pub log_message: Option<String>,
118174}
119175
120176#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
121177#[serde(rename_all = "camelCase")]
122178pub struct Breakpoint {
179+ #[serde(skip_serializing_if = "Option::is_none")]
123180 pub id: Option<usize>,
124181 pub verified: bool,
182+ #[serde(skip_serializing_if = "Option::is_none")]
125183 pub message: Option<String>,
184+ #[serde(skip_serializing_if = "Option::is_none")]
126185 pub source: Option<Source>,
186+ #[serde(skip_serializing_if = "Option::is_none")]
127187 pub line: Option<usize>,
188+ #[serde(skip_serializing_if = "Option::is_none")]
128189 pub column: Option<usize>,
190+ #[serde(skip_serializing_if = "Option::is_none")]
129191 pub end_line: Option<usize>,
192+ #[serde(skip_serializing_if = "Option::is_none")]
130193 pub end_column: Option<usize>,
194+ #[serde(skip_serializing_if = "Option::is_none")]
131195 pub instruction_reference: Option<String>,
196+ #[serde(skip_serializing_if = "Option::is_none")]
132197 pub offset: Option<usize>,
133198}
134199
135200#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
136201#[serde(rename_all = "camelCase")]
137202pub struct StackFrameFormat {
203+ #[serde(skip_serializing_if = "Option::is_none")]
138204 pub parameters: Option<bool>,
205+ #[serde(skip_serializing_if = "Option::is_none")]
139206 pub parameter_types: Option<bool>,
207+ #[serde(skip_serializing_if = "Option::is_none")]
140208 pub parameter_names: Option<bool>,
209+ #[serde(skip_serializing_if = "Option::is_none")]
141210 pub parameter_values: Option<bool>,
211+ #[serde(skip_serializing_if = "Option::is_none")]
142212 pub line: Option<bool>,
213+ #[serde(skip_serializing_if = "Option::is_none")]
143214 pub module: Option<bool>,
215+ #[serde(skip_serializing_if = "Option::is_none")]
144216 pub include_all: Option<bool>,
145217}
146218
@@ -149,14 +221,21 @@ pub struct StackFrameFormat {
149221pub struct StackFrame {
150222 pub id: usize,
151223 pub name: String,
224+ #[serde(skip_serializing_if = "Option::is_none")]
152225 pub source: Option<Source>,
153226 pub line: usize,
154227 pub column: usize,
228+ #[serde(skip_serializing_if = "Option::is_none")]
155229 pub end_line: Option<usize>,
230+ #[serde(skip_serializing_if = "Option::is_none")]
156231 pub end_column: Option<usize>,
232+ #[serde(skip_serializing_if = "Option::is_none")]
157233 pub can_restart: Option<bool>,
234+ #[serde(skip_serializing_if = "Option::is_none")]
158235 pub instruction_pointer_reference: Option<String>,
236+ #[serde(skip_serializing_if = "Option::is_none")]
159237 pub module_id: Option<Value>,
238+ #[serde(skip_serializing_if = "Option::is_none")]
160239 pub presentation_hint: Option<String>,
161240}
162241
@@ -171,29 +250,41 @@ pub struct Thread {
171250#[serde(rename_all = "camelCase")]
172251pub struct Scope {
173252 pub name: String,
253+ #[serde(skip_serializing_if = "Option::is_none")]
174254 pub presentation_hint: Option<String>,
175255 pub variables_reference: usize,
256+ #[serde(skip_serializing_if = "Option::is_none")]
176257 pub named_variables: Option<usize>,
258+ #[serde(skip_serializing_if = "Option::is_none")]
177259 pub indexed_variables: Option<usize>,
178260 pub expensive: bool,
261+ #[serde(skip_serializing_if = "Option::is_none")]
179262 pub source: Option<Source>,
263+ #[serde(skip_serializing_if = "Option::is_none")]
180264 pub line: Option<usize>,
265+ #[serde(skip_serializing_if = "Option::is_none")]
181266 pub column: Option<usize>,
267+ #[serde(skip_serializing_if = "Option::is_none")]
182268 pub end_line: Option<usize>,
269+ #[serde(skip_serializing_if = "Option::is_none")]
183270 pub end_column: Option<usize>,
184271}
185272
186273#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
187274#[serde(rename_all = "camelCase")]
188275pub struct ValueFormat {
276+ #[serde(skip_serializing_if = "Option::is_none")]
189277 pub hex: Option<bool>,
190278}
191279
192280#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
193281#[serde(rename_all = "camelCase")]
194282pub struct VariablePresentationHint {
283+ #[serde(skip_serializing_if = "Option::is_none")]
195284 pub kind: Option<String>,
285+ #[serde(skip_serializing_if = "Option::is_none")]
196286 pub attributes: Option<Vec<String>>,
287+ #[serde(skip_serializing_if = "Option::is_none")]
197288 pub visibility: Option<String>,
198289}
199290
@@ -202,13 +293,18 @@ pub struct VariablePresentationHint {
202293pub struct Variable {
203294 pub name: String,
204295 pub value: String,
205− #[serde(rename = "type")]
296+ #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
206297 pub ty: Option<String>,
298+ #[serde(skip_serializing_if = "Option::is_none")]
207299 pub presentation_hint: Option<VariablePresentationHint>,
300+ #[serde(skip_serializing_if = "Option::is_none")]
208301 pub evaluate_name: Option<String>,
209302 pub variables_reference: usize,
303+ #[serde(skip_serializing_if = "Option::is_none")]
210304 pub named_variables: Option<usize>,
305+ #[serde(skip_serializing_if = "Option::is_none")]
211306 pub indexed_variables: Option<usize>,
307+ #[serde(skip_serializing_if = "Option::is_none")]
212308 pub memory_reference: Option<String>,
213309}
214310
@@ -217,13 +313,21 @@ pub struct Variable {
217313pub struct Module {
218314 pub id: String, // TODO: || number
219315 pub name: String,
316+ #[serde(skip_serializing_if = "Option::is_none")]
220317 pub path: Option<PathBuf>,
318+ #[serde(skip_serializing_if = "Option::is_none")]
221319 pub is_optimized: Option<bool>,
320+ #[serde(skip_serializing_if = "Option::is_none")]
222321 pub is_user_code: Option<bool>,
322+ #[serde(skip_serializing_if = "Option::is_none")]
223323 pub version: Option<String>,
324+ #[serde(skip_serializing_if = "Option::is_none")]
224325 pub symbol_status: Option<String>,
326+ #[serde(skip_serializing_if = "Option::is_none")]
225327 pub symbol_file_path: Option<String>,
328+ #[serde(skip_serializing_if = "Option::is_none")]
226329 pub date_time_stamp: Option<String>,
330+ #[serde(skip_serializing_if = "Option::is_none")]
227331 pub address_range: Option<String>,
228332}
229333
@@ -232,22 +336,31 @@ pub mod requests {
232336 #[derive(Debug, Default, PartialEq, Clone, Deserialize, Serialize)]
233337 #[serde(rename_all = "camelCase")]
234338 pub struct InitializeArguments {
235− #[serde(rename = "clientID")]
339+ #[serde(rename = "clientID", skip_serializing_if = "Option::is_none")]
236340 pub client_id: Option<String>,
341+ #[serde(skip_serializing_if = "Option::is_none")]
237342 pub client_name: Option<String>,
238343 #[serde(rename = "adapterID")]
239344 pub adapter_id: String,
345+ #[serde(skip_serializing_if = "Option::is_none")]
240346 pub locale: Option<String>,
241− #[serde(rename = "linesStartAt1")]
347+ #[serde(rename = "linesStartAt1", skip_serializing_if = "Option::is_none")]
242348 pub lines_start_at_one: Option<bool>,
243− #[serde(rename = "columnsStartAt1")]
349+ #[serde(rename = "columnsStartAt1", skip_serializing_if = "Option::is_none")]
244350 pub columns_start_at_one: Option<bool>,
351+ #[serde(skip_serializing_if = "Option::is_none")]
245352 pub path_format: Option<String>,
353+ #[serde(skip_serializing_if = "Option::is_none")]
246354 pub supports_variable_type: Option<bool>,
355+ #[serde(skip_serializing_if = "Option::is_none")]
247356 pub supports_variable_paging: Option<bool>,
357+ #[serde(skip_serializing_if = "Option::is_none")]
248358 pub supports_run_in_terminal_request: Option<bool>,
359+ #[serde(skip_serializing_if = "Option::is_none")]
249360 pub supports_memory_references: Option<bool>,
361+ #[serde(skip_serializing_if = "Option::is_none")]
250362 pub supports_progress_reporting: Option<bool>,
363+ #[serde(skip_serializing_if = "Option::is_none")]
251364 pub supports_invalidated_event: Option<bool>,
252365 }
253366
@@ -300,14 +413,17 @@ pub mod requests {
300413 #[serde(rename_all = "camelCase")]
301414 pub struct SetBreakpointsArguments {
302415 pub source: Source,
416+ #[serde(skip_serializing_if = "Option::is_none")]
303417 pub breakpoints: Option<Vec<SourceBreakpoint>>,
304418 // lines is deprecated
419+ #[serde(skip_serializing_if = "Option::is_none")]
305420 pub source_modified: Option<bool>,
306421 }
307422
308423 #[derive(Debug, Default, PartialEq, Clone, Deserialize, Serialize)]
309424 #[serde(rename_all = "camelCase")]
310425 pub struct SetBreakpointsResponse {
426+ #[serde(skip_serializing_if = "Option::is_none")]
311427 pub breakpoints: Option<Vec<Breakpoint>>,
312428 }
313429
@@ -329,6 +445,7 @@ pub mod requests {
329445 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
330446 #[serde(rename_all = "camelCase")]
331447 pub struct ContinueResponse {
448+ #[serde(skip_serializing_if = "Option::is_none")]
332449 pub all_threads_continued: Option<bool>,
333450 }
334451
@@ -345,14 +462,18 @@ pub mod requests {
345462 #[serde(rename_all = "camelCase")]
346463 pub struct StackTraceArguments {
347464 pub thread_id: ThreadId,
465+ #[serde(skip_serializing_if = "Option::is_none")]
348466 pub start_frame: Option<usize>,
467+ #[serde(skip_serializing_if = "Option::is_none")]
349468 pub levels: Option<usize>,
469+ #[serde(skip_serializing_if = "Option::is_none")]
350470 pub format: Option<StackFrameFormat>,
351471 }
352472
353473 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
354474 #[serde(rename_all = "camelCase")]
355475 pub struct StackTraceResponse {
476+ #[serde(skip_serializing_if = "Option::is_none")]
356477 pub total_frames: Option<usize>,
357478 pub stack_frames: Vec<StackFrame>,
358479 }
@@ -406,9 +527,13 @@ pub mod requests {
406527 #[serde(rename_all = "camelCase")]
407528 pub struct VariablesArguments {
408529 pub variables_reference: usize,
530+ #[serde(skip_serializing_if = "Option::is_none")]
409531 pub filter: Option<String>,
532+ #[serde(skip_serializing_if = "Option::is_none")]
410533 pub start: Option<usize>,
534+ #[serde(skip_serializing_if = "Option::is_none")]
411535 pub count: Option<usize>,
536+ #[serde(skip_serializing_if = "Option::is_none")]
412537 pub format: Option<ValueFormat>,
413538 }
414539
@@ -431,7 +556,9 @@ pub mod requests {
431556 #[serde(rename_all = "camelCase")]
432557 pub struct StepInArguments {
433558 pub thread_id: ThreadId,
559+ #[serde(skip_serializing_if = "Option::is_none")]
434560 pub target_id: Option<usize>,
561+ #[serde(skip_serializing_if = "Option::is_none")]
435562 pub granularity: Option<String>,
436563 }
437564
@@ -448,6 +575,7 @@ pub mod requests {
448575 #[serde(rename_all = "camelCase")]
449576 pub struct StepOutArguments {
450577 pub thread_id: ThreadId,
578+ #[serde(skip_serializing_if = "Option::is_none")]
451579 pub granularity: Option<String>,
452580 }
453581
@@ -464,6 +592,7 @@ pub mod requests {
464592 #[serde(rename_all = "camelCase")]
465593 pub struct NextArguments {
466594 pub thread_id: ThreadId,
595+ #[serde(skip_serializing_if = "Option::is_none")]
467596 pub granularity: Option<String>,
468597 }
469598
@@ -495,8 +624,11 @@ pub mod requests {
495624 #[serde(rename_all = "camelCase")]
496625 pub struct EvaluateArguments {
497626 pub expression: String,
627+ #[serde(skip_serializing_if = "Option::is_none")]
498628 pub frame_id: Option<usize>,
629+ #[serde(skip_serializing_if = "Option::is_none")]
499630 pub context: Option<String>,
631+ #[serde(skip_serializing_if = "Option::is_none")]
500632 pub format: Option<ValueFormat>,
501633 }
502634
@@ -504,12 +636,16 @@ pub mod requests {
504636 #[serde(rename_all = "camelCase")]
505637 pub struct EvaluateResponse {
506638 pub result: String,
507− #[serde(rename = "type")]
639+ #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
508640 pub ty: Option<String>,
641+ #[serde(skip_serializing_if = "Option::is_none")]
509642 pub presentation_hint: Option<VariablePresentationHint>,
510643 pub variables_reference: usize,
644+ #[serde(skip_serializing_if = "Option::is_none")]
511645 pub named_variables: Option<usize>,
646+ #[serde(skip_serializing_if = "Option::is_none")]
512647 pub indexed_variables: Option<usize>,
648+ #[serde(skip_serializing_if = "Option::is_none")]
513649 pub memory_reference: Option<String>,
514650 }
515651
@@ -533,6 +669,7 @@ pub mod requests {
533669 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
534670 #[serde(rename_all = "camelCase")]
535671 pub struct SetExceptionBreakpointsResponse {
672+ #[serde(skip_serializing_if = "Option::is_none")]
536673 pub breakpoints: Option<Vec<Breakpoint>>,
537674 }
538675
@@ -550,17 +687,23 @@ pub mod requests {
550687 #[derive(Debug, Default, PartialEq, Clone, Deserialize, Serialize)]
551688 #[serde(rename_all = "camelCase")]
552689 pub struct RunInTerminalResponse {
690+ #[serde(skip_serializing_if = "Option::is_none")]
553691 pub process_id: Option<u32>,
692+ #[serde(skip_serializing_if = "Option::is_none")]
554693 pub shell_process_id: Option<u32>,
555694 }
556695
557696 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
558697 #[serde(rename_all = "camelCase")]
559698 pub struct RunInTerminalArguments {
699+ #[serde(skip_serializing_if = "Option::is_none")]
560700 pub kind: Option<String>,
701+ #[serde(skip_serializing_if = "Option::is_none")]
561702 pub title: Option<String>,
703+ #[serde(skip_serializing_if = "Option::is_none")]
562704 pub cwd: Option<String>,
563705 pub args: Vec<String>,
706+ #[serde(skip_serializing_if = "Option::is_none")]
564707 pub env: Option<HashMap<String, Option<String>>>,
565708 }
566709
@@ -607,11 +750,17 @@ pub mod events {
607750 #[serde(rename_all = "camelCase")]
608751 pub struct Stopped {
609752 pub reason: String,
753+ #[serde(skip_serializing_if = "Option::is_none")]
610754 pub description: Option<String>,
755+ #[serde(skip_serializing_if = "Option::is_none")]
611756 pub thread_id: Option<ThreadId>,
757+ #[serde(skip_serializing_if = "Option::is_none")]
612758 pub preserve_focus_hint: Option<bool>,
759+ #[serde(skip_serializing_if = "Option::is_none")]
613760 pub text: Option<String>,
761+ #[serde(skip_serializing_if = "Option::is_none")]
614762 pub all_threads_stopped: Option<bool>,
763+ #[serde(skip_serializing_if = "Option::is_none")]
615764 pub hit_breakpoint_ids: Option<Vec<usize>>,
616765 }
617766
@@ -619,6 +768,7 @@ pub mod events {
619768 #[serde(rename_all = "camelCase")]
620769 pub struct Continued {
621770 pub thread_id: ThreadId,
771+ #[serde(skip_serializing_if = "Option::is_none")]
622772 pub all_threads_continued: Option<bool>,
623773 }
624774
@@ -631,6 +781,7 @@ pub mod events {
631781 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
632782 #[serde(rename_all = "camelCase")]
633783 pub struct Terminated {
784+ #[serde(skip_serializing_if = "Option::is_none")]
634785 pub restart: Option<Value>,
635786 }
636787
@@ -645,12 +796,19 @@ pub mod events {
645796 #[serde(rename_all = "camelCase")]
646797 pub struct Output {
647798 pub output: String,
799+ #[serde(skip_serializing_if = "Option::is_none")]
648800 pub category: Option<String>,
801+ #[serde(skip_serializing_if = "Option::is_none")]
649802 pub group: Option<String>,
803+ #[serde(skip_serializing_if = "Option::is_none")]
650804 pub line: Option<usize>,
805+ #[serde(skip_serializing_if = "Option::is_none")]
651806 pub column: Option<usize>,
807+ #[serde(skip_serializing_if = "Option::is_none")]
652808 pub variables_reference: Option<usize>,
809+ #[serde(skip_serializing_if = "Option::is_none")]
653810 pub source: Option<Source>,
811+ #[serde(skip_serializing_if = "Option::is_none")]
654812 pub data: Option<Value>,
655813 }
656814
@@ -679,9 +837,13 @@ pub mod events {
679837 #[serde(rename_all = "camelCase")]
680838 pub struct Process {
681839 pub name: String,
840+ #[serde(skip_serializing_if = "Option::is_none")]
682841 pub system_process_id: Option<usize>,
842+ #[serde(skip_serializing_if = "Option::is_none")]
683843 pub is_local_process: Option<bool>,
844+ #[serde(skip_serializing_if = "Option::is_none")]
684845 pub start_method: Option<String>, // TODO: use enum
846+ #[serde(skip_serializing_if = "Option::is_none")]
685847 pub pointer_size: Option<usize>,
686848 }
687849