easy_assert/
values.rs

1use std::fmt::{Display, Formatter};
2
3use crate::Actual;
4
5impl<T> Actual<T> {
6    pub fn new(value: T, description_func: fn(&T) -> String) -> Actual<T> {
7        Actual {
8            value,
9            description_func,
10        }
11    }
12}
13
14impl<T> Actual<T>
15where
16    T: Display,
17{
18    pub fn create_for(value: T) -> Actual<T> {
19        Actual {
20            value,
21            description_func: |v| v.to_string(),
22        }
23    }
24}
25
26impl<T> Display for Actual<T> {
27    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
28        write!(f, "{}", (self.description_func)(&self.value))
29    }
30}
31
32impl<T> PartialEq for Actual<T>
33where
34    T: PartialEq,
35{
36    fn eq(&self, other: &Self) -> bool {
37        self.value.eq(&other.value)
38    }
39}