MCPcopy Create free account
hub / github.com/cargo-lambda/cargo-lambda / serialize

Method serialize

crates/cargo-lambda-metadata/src/cargo/watch.rs:132–228  ·  view source on GitHub ↗
(&self, serializer: S)

Source from the content-addressed store, hash-verified

130
131impl Serialize for Watch {
132 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
133 where
134 S: serde::Serializer,
135 {
136 use serde::ser::SerializeStruct;
137
138 // Count non-empty fields
139 let field_count = self.ignore_changes as usize
140 + self.only_lambda_apis as usize
141 + !self.invoke_address.is_empty() as usize
142 + (self.invoke_port != 0) as usize
143 + self.print_traces as usize
144 + self.wait as usize
145 + self.disable_cors as usize
146 + self.timeout.is_some() as usize
147 + (self.concurrency != 1) as usize
148 + self.router.is_some() as usize
149 + self.cargo_opts.manifest_path.is_some() as usize
150 + self.cargo_opts.release as usize
151 + self.cargo_opts.ignore_rust_version as usize
152 + self.cargo_opts.unit_graph as usize
153 + !self.cargo_opts.packages.is_empty() as usize
154 + !self.cargo_opts.bin.is_empty() as usize
155 + !self.cargo_opts.example.is_empty() as usize
156 + !self.cargo_opts.args.is_empty() as usize
157 + count_common_options(&self.cargo_opts.common)
158 + self.env_options.count_fields()
159 + self.tls_options.count_fields();
160
161 let mut state = serializer.serialize_struct("Watch", field_count)?;
162
163 // Only serialize bool fields that are true
164 if self.ignore_changes {
165 state.serialize_field("ignore_changes", &true)?;
166 }
167 if self.only_lambda_apis {
168 state.serialize_field("only_lambda_apis", &true)?;
169 }
170 if !self.invoke_address.is_empty() {
171 state.serialize_field("invoke_address", &self.invoke_address)?;
172 }
173 if self.invoke_port != 0 {
174 state.serialize_field("invoke_port", &self.invoke_port)?;
175 }
176 if self.print_traces {
177 state.serialize_field("print_traces", &true)?;
178 }
179 if self.wait {
180 state.serialize_field("wait", &true)?;
181 }
182 if self.disable_cors {
183 state.serialize_field("disable_cors", &true)?;
184 }
185
186 // Only serialize Some values for Options
187 if let Some(timeout) = &self.timeout {
188 state.serialize_field("timeout", timeout)?;
189 }

Callers

nothing calls this directly

Calls 5

count_common_optionsFunction · 0.85
newFunction · 0.85
insertMethod · 0.80
is_emptyMethod · 0.45
count_fieldsMethod · 0.45

Tested by

no test coverage detected