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}