ferroui_base/animation/
i_animation_setter.rs1use crate::styling::{Setter, SetterValue};
2use crate::FerroProperty;
3
4pub trait IAnimationSetter: 'static {
6 fn property(&self) -> Option<&'static FerroProperty>;
8
9 fn set_property(&self, value: Option<&'static FerroProperty>);
10
11 fn value(&self) -> Option<SetterValue>;
14
15 fn set_value(&self, value: Option<SetterValue>);
16
17 fn as_any(&self) -> Option<&dyn std::any::Any> {
21 None
22 }
23}
24
25impl IAnimationSetter for Setter {
26 fn property(&self) -> Option<&'static FerroProperty> {
27 Setter::property(self)
28 }
29
30 fn set_property(&self, value: Option<&'static FerroProperty>) {
31 Setter::set_property(self, value)
32 }
33
34 fn value(&self) -> Option<SetterValue> {
35 Setter::value(self)
36 }
37
38 fn set_value(&self, value: Option<SetterValue>) {
39 Setter::set_value(self, value)
40 }
41
42 fn as_any(&self) -> Option<&dyn std::any::Any> {
43 Some(self)
44 }
45}
46
47impl PartialEq for dyn IAnimationSetter {
50 #[inline]
51 fn eq(&self, other: &Self) -> bool {
52 std::ptr::addr_eq(self as *const Self, other as *const Self)
53 }
54}