Skip to main content

ferroui_base/media/
material_extensions.rs

1use crate::media::IExperimentalAcrylicMaterial;
2use std::rc::Rc;
3
4/// Extension methods for material classes.
5pub struct MaterialExtensions;
6
7impl MaterialExtensions {
8    /// Converts a material to an immutable material: the result of
9    /// [`IMutableExperimentalAcrylicMaterial::to_immutable`](crate::media::IMutableExperimentalAcrylicMaterial::to_immutable)
10    /// if the material is mutable, otherwise the material itself.
11    pub fn to_immutable(material: &Rc<dyn IExperimentalAcrylicMaterial>) -> Rc<dyn IExperimentalAcrylicMaterial> {
12        match material.as_mutable_material() {
13            Some(mutable) => mutable.to_immutable(),
14            None => material.clone(),
15        }
16    }
17}