component_shape/
value_change.rs1#[derive(Clone, Debug, Eq, PartialEq)]
3pub enum ValueChange<T> {
4 Unchanged,
6 Set(T),
8 Clear,
10}
11
12impl<T> ValueChange<T> {
13 pub const fn set(value: T) -> Self {
15 Self::Set(value)
16 }
17
18 pub const fn clear() -> Self {
20 Self::Clear
21 }
22
23 pub const fn unchanged() -> Self {
25 Self::Unchanged
26 }
27}
28
29#[cfg(test)]
30mod tests {
31 use super::ValueChange;
32
33 #[test]
34 fn value_change_helpers_construct_expected_variants() {
35 assert_eq!(ValueChange::set("x"), ValueChange::Set("x"));
36 assert_eq!(ValueChange::<String>::clear(), ValueChange::Clear);
37 assert_eq!(ValueChange::<String>::unchanged(), ValueChange::Unchanged);
38 }
39}