ferroui_dynamic_data/list/
item_change.rs1#[derive(Clone, Debug, PartialEq, Eq, Hash)]
5pub struct ItemChange<T> {
6 reason: super::ListChangeReason,
7 current: T,
8 previous: Option<T>,
9 current_index: Option<usize>,
10 previous_index: Option<usize>,
11}
12
13impl<T> ItemChange<T> {
14 pub fn new(reason: super::ListChangeReason, current: T, previous: Option<T>, current_index: Option<usize>, previous_index: Option<usize>) -> Self {
16 Self { reason, current, previous, current_index, previous_index }
17 }
18
19 pub fn reason(&self) -> super::ListChangeReason {
21 self.reason
22 }
23
24 pub fn current(&self) -> &T {
26 &self.current
27 }
28
29 pub fn previous(&self) -> Option<&T> {
31 self.previous.as_ref()
32 }
33
34 pub fn current_index(&self) -> Option<usize> {
36 self.current_index
37 }
38
39 pub fn previous_index(&self) -> Option<usize> {
41 self.previous_index
42 }
43
44}