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

Method serialize

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

Source from the content-addressed store, hash-verified

163
164impl Serialize for Build {
165 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
166 where
167 S: serde::Serializer,
168 {
169 use serde::ser::SerializeStruct;
170
171 // Count how many fields we'll actually serialize
172 let field_count = self.output_format.is_some() as usize
173 + self.lambda_dir.is_some() as usize
174 + self.flatten.is_some() as usize
175 + self.compiler.is_some() as usize
176 + self.include.is_some() as usize
177 + self.arm64 as usize
178 + self.x86_64 as usize
179 + self.extension as usize
180 + self.internal as usize
181 + self.skip_target_check as usize
182 + self.disable_optimizations as usize
183 + self.cargo_opts.manifest_path.is_some() as usize
184 + self.cargo_opts.bins as usize
185 + !self.cargo_opts.bin.is_empty() as usize
186 + self.cargo_opts.examples as usize
187 + !self.cargo_opts.example.is_empty() as usize
188 + self.cargo_opts.all_targets as usize
189 + !self.cargo_opts.packages.is_empty() as usize
190 + self.cargo_opts.workspace as usize
191 + !self.cargo_opts.exclude.is_empty() as usize
192 + self.cargo_opts.tests as usize
193 + !self.cargo_opts.test.is_empty() as usize
194 + self.cargo_opts.benches as usize
195 + !self.cargo_opts.bench.is_empty() as usize
196 + count_common_options(&self.cargo_opts.common)
197 + self.env_options.count_fields();
198
199 let mut state = serializer.serialize_struct("Build", field_count)?;
200
201 // Optional fields
202 if let Some(ref output_format) = self.output_format {
203 state.serialize_field("output_format", output_format)?;
204 }
205 if let Some(ref lambda_dir) = self.lambda_dir {
206 state.serialize_field("lambda_dir", lambda_dir)?;
207 }
208 if let Some(ref flatten) = self.flatten {
209 state.serialize_field("flatten", flatten)?;
210 }
211 if let Some(ref compiler) = self.compiler {
212 state.serialize_field("compiler", compiler)?;
213 }
214 if let Some(ref include) = self.include {
215 state.serialize_field("include", include)?;
216 }
217
218 // Boolean fields
219 if self.arm64 {
220 state.serialize_field("arm64", &true)?;
221 }
222 if self.x86_64 {

Callers

nothing calls this directly

Calls 3

count_common_optionsFunction · 0.85
is_emptyMethod · 0.45
count_fieldsMethod · 0.45

Tested by

no test coverage detected