Hi! I'm providing you with a code from the IDE i'm writing, it's on Rust and uses a 3d engine called Bevy to render the interface. I need you to describe me what this function does. You can ask for all the extra info you need.
pub fn update_selection(
                &mut self,
                doc                                     : &Document,
                selection                       : &Selection,
                theme                           : &Theme,
                mesh_assets                     : &mut Assets<Mesh>,
                color_materials_cache : &mut ColorMaterialsCache,
                material_assets         : &mut Assets<StandardMaterial>,
                commands                        : &mut Commands,
        ) {
        let selection_scope = theme
            .find_scope_index("ui.selection")
            .expect("could not find `ui.selection.primary` scope in the theme!");

                let style = theme.highlight(selection_scope);

                let mut base_color = color_from_helix(style.bg.unwrap());
                base_color.set_a(0.9);

                let selection_material_handle = get_color_material_walpha_handle(
                        base_color,
                        AlphaMode::Blend,
                        color_materials_cache,
                        material_assets
                );
 Give two different versions of responses. Please separate the responses with 6 asterisk symbols: ******.
user