blob: 506763c223a442abbfd0d04227045c208be28688 [file] [log] [blame]
// Copyright 2021 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
use crate::core::{Core, ObjectRef};
pub(crate) struct Animator<T> {
val: T,
}
impl<T: Clone> Animator<T> {
pub fn new(val: T) -> Self {
Self { val }
}
pub fn animate<'a, C: Core, S>(&self, object: &'a ObjectRef<'a, C>, setter: S)
where
S: Fn(&'a ObjectRef<'a, C>, T),
{
setter(object, self.val.clone());
}
}