MCPcopy Create free account
hub / github.com/PerroEngine/Perro / write_data

Method write_data

perro_source/runtime_project/perro_scene/src/scene_doc.rs:224–252  ·  view source on GitHub ↗
(&self, data: &SceneNodeData, out: &mut String, depth: usize)

Source from the content-addressed store, hash-verified

222 out.push_str("[/");
223 out.push_str(node_key.as_ref());
224 out.push_str("]\n");
225 }
226 }
227
228 fn write_data(&self, data: &SceneNodeData, out: &mut String, depth: usize) {
229 indent(out, depth);
230 out.push('[');
231 out.push_str(data.type_name());
232 let fields = data
233 .fields
234 .iter()
235 .filter(|(name, value)| !scene_field_matches_default(data, name, value))
236 .collect::<Vec<_>>();
237 if data.base_ref().is_none() && fields.is_empty() {
238 out.push_str("/]\n");
239 return;
240 }
241 out.push_str("]\n");
242 for (name, value) in fields {
243 indent(out, depth + 1);
244 out.push_str(name.as_ref());
245 out.push_str(" = ");
246 self.write_field_value(name.as_ref(), value, out, depth + 1);
247 out.push('\n');
248 }
249 if let Some(base) = data.base_ref() {
250 self.write_data(base, out, depth + 1);
251 }
252 indent(out, depth);
253 out.push_str("[/");
254 out.push_str(data.type_name());
255 out.push_str("]\n");

Callers 1

write_nodeMethod · 0.80

Calls 9

type_nameMethod · 0.80
base_refMethod · 0.80
write_field_valueMethod · 0.80
indentFunction · 0.70
pushMethod · 0.45
iterMethod · 0.45
is_emptyMethod · 0.45
as_refMethod · 0.45

Tested by

no test coverage detected