ferroui_dynamic_data/kernel/
item_with_value.rs1use std::fmt;
4
5#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
8pub struct ItemWithValue<T, V> {
9 item: T,
10 value: V,
11}
12
13impl<T, V> ItemWithValue<T, V> {
14 pub fn new(item: T, value: V) -> Self {
16 Self { item, value }
17 }
18
19 pub fn item(&self) -> &T {
21 &self.item
22 }
23
24 pub fn value(&self) -> &V {
26 &self.value
27 }
28
29 pub fn into_parts(self) -> (T, V) {
31 (self.item, self.value)
32 }
33}
34
35impl<T: fmt::Display, V: fmt::Display> fmt::Display for ItemWithValue<T, V> {
36 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
37 write!(f, "{} ({})", self.item, self.value)
38 }
39}