pace_core/
util.rs

1/// Overwrite any value with another.
2///
3/// This can be used to overwrite an activity with another activity.
4///
5/// # Arguments
6///
7/// * `left` - The left value
8/// * `right` - The right value
9pub fn overwrite_left_with_right<T>(left: &mut T, right: T) {
10    *left = right;
11}
12
13#[cfg(test)]
14mod tests {
15
16    use crate::domain::activity::Activity;
17
18    use super::*;
19
20    #[test]
21    fn test_overwrite_i32_passes() {
22        let mut left = 1;
23        let right = 2;
24        overwrite_left_with_right(&mut left, right);
25        assert_eq!(left, 2);
26    }
27
28    #[test]
29    fn test_overwrite_string_passes() {
30        let mut left = String::from("left");
31        let right = String::from("right");
32        overwrite_left_with_right(&mut left, right);
33        assert_eq!(left, "right");
34    }
35
36    #[test]
37    fn test_overwrite_activity_passes() {
38        let mut left = Activity::default();
39        let mut right = Activity::default();
40        _ = right.category_mut().replace("right".to_string());
41        overwrite_left_with_right(&mut left, right);
42        assert_eq!(left.category(), &Some("right".to_string()));
43    }
44}