openconfiguration 1.7.0

OpenConfiguration (OC) is a modular, efficient and flexible approach for the uni-directional exchange of visual e-commerce configurations.
Documentation
use super::Visitable;

pub trait Visitor {
    #[allow(unused_variables)]
    fn visit_geometry(&mut self, geometry_name: &str, geometry: &mut crate::ig::Geometry) {}

    #[allow(unused_variables)]
    fn visit_geometry_index(&mut self, geometry_name: &str, url: &mut String) {}

    #[allow(unused_variables)]
    fn visit_material(&mut self, material_name: &str, material: &mut crate::ig::Material) {}

    #[allow(unused_variables)]
    fn visit_material_index(&mut self, material_name: &str, url: &mut String) {}

    #[allow(unused_variables)]
    fn visit_texture_map(&mut self, map: &mut crate::ig::TextureMap) {}

    #[allow(unused_variables)]
    fn visit_script(&mut self, script: &mut crate::Script) {}

    #[allow(unused_variables)]
    /// Visits a path, which may be a URL or a local file path.
    ///
    /// This will not be called for hashes or paths used by the commercial data currently.
    fn visit_path(&mut self, path: &mut String) {}
}

pub fn visit(scene: &mut crate::Scene, visitor: &mut dyn Visitor) {
    scene.visit(visitor)
}

pub trait SceneVisitorExtension {
    fn visit(&mut self, visitor: &mut dyn Visitor);
}

impl SceneVisitorExtension for crate::Scene {
    fn visit(&mut self, visitor: &mut dyn Visitor) {
        self.visit_with(visitor)
    }
}