1use crate::animation::AnimationTiming;
2
3#[derive(Clone, Debug, Default, PartialEq)]
4pub struct NodeTransitions {
5 opacity_timing: Option<AnimationTiming>,
6 background_color_timing: Option<AnimationTiming>,
7 scroll_offset_timing: Option<AnimationTiming>,
8}
9
10impl NodeTransitions {
11 pub fn new() -> Self {
12 Self::default()
13 }
14
15 pub fn opacity(mut self, timing: AnimationTiming) -> Self {
16 self.opacity_timing = Some(timing);
17 self
18 }
19
20 pub fn bg_color(mut self, timing: AnimationTiming) -> Self {
21 self.background_color_timing = Some(timing);
22 self
23 }
24
25 pub fn scroll_offset(mut self, timing: AnimationTiming) -> Self {
26 self.scroll_offset_timing = Some(timing);
27 self
28 }
29
30 pub(crate) fn opacity_timing(&self) -> Option<AnimationTiming> {
31 self.opacity_timing
32 }
33
34 pub(crate) fn background_color_timing(&self) -> Option<AnimationTiming> {
35 self.background_color_timing
36 }
37
38 pub(crate) fn scroll_offset_timing(&self) -> Option<AnimationTiming> {
39 self.scroll_offset_timing
40 }
41}