ferroui_base/media/
gradient_stops.rs1use crate::media::immutable::ImmutableGradientStop;
2use crate::media::media_collection::media_collection_type;
3use crate::media::{GradientStop, MediaCollection, ResetBehavior};
4use crate::Ref;
5
6media_collection_type!(
7 GradientStops, Ref<GradientStop>
9);
10
11impl GradientStops {
12 pub fn new() -> Self {
14 let list = MediaCollection::new();
15 list.set_reset_behavior(ResetBehavior::Remove);
16 Self(list)
17 }
18
19 pub fn from_items(items: impl IntoIterator<Item = Ref<GradientStop>>) -> Self {
21 let list = MediaCollection::from_items(items);
22 list.set_reset_behavior(ResetBehavior::Remove);
23 Self(list)
24 }
25
26 pub fn to_immutable(&self) -> Vec<ImmutableGradientStop> {
28 self.iter().map(|stop| ImmutableGradientStop::new(stop.offset(), stop.color())).collect()
29 }
30}