fui-rs 0.2.6

Retained Rust UI for native desktop and WebAssembly applications
Documentation
use crate::animation::AnimationTiming;

#[derive(Clone, Debug, Default, PartialEq)]
pub struct NodeTransitions {
    opacity_timing: Option<AnimationTiming>,
    background_color_timing: Option<AnimationTiming>,
    scroll_offset_timing: Option<AnimationTiming>,
}

impl NodeTransitions {
    pub fn new() -> Self {
        Self::default()
    }

    pub fn opacity(mut self, timing: AnimationTiming) -> Self {
        self.opacity_timing = Some(timing);
        self
    }

    pub fn bg_color(mut self, timing: AnimationTiming) -> Self {
        self.background_color_timing = Some(timing);
        self
    }

    pub fn scroll_offset(mut self, timing: AnimationTiming) -> Self {
        self.scroll_offset_timing = Some(timing);
        self
    }

    pub(crate) fn opacity_timing(&self) -> Option<AnimationTiming> {
        self.opacity_timing
    }

    pub(crate) fn background_color_timing(&self) -> Option<AnimationTiming> {
        self.background_color_timing
    }

    pub(crate) fn scroll_offset_timing(&self) -> Option<AnimationTiming> {
        self.scroll_offset_timing
    }
}