openconfiguration/support/
visitor.rs1use super::Visitable;
2
3pub trait Visitor {
4 #[allow(unused_variables)]
5 fn visit_geometry(&mut self, geometry_name: &str, geometry: &mut crate::ig::Geometry) {}
6
7 #[allow(unused_variables)]
8 fn visit_geometry_index(&mut self, geometry_name: &str, url: &mut String) {}
9
10 #[allow(unused_variables)]
11 fn visit_material(&mut self, material_name: &str, material: &mut crate::ig::Material) {}
12
13 #[allow(unused_variables)]
14 fn visit_material_index(&mut self, material_name: &str, url: &mut String) {}
15
16 #[allow(unused_variables)]
17 fn visit_texture_map(&mut self, map: &mut crate::ig::TextureMap) {}
18
19 #[allow(unused_variables)]
20 fn visit_script(&mut self, script: &mut crate::Script) {}
21
22 #[allow(unused_variables)]
23 fn visit_path(&mut self, path: &mut String) {}
27}
28
29pub fn visit(scene: &mut crate::Scene, visitor: &mut dyn Visitor) {
30 scene.visit(visitor)
31}
32
33pub trait SceneVisitorExtension {
34 fn visit(&mut self, visitor: &mut dyn Visitor);
35}
36
37impl SceneVisitorExtension for crate::Scene {
38 fn visit(&mut self, visitor: &mut dyn Visitor) {
39 self.visit_with(visitor)
40 }
41}