rust_filesearch/models/
duplicate.rs1use super::Entry;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
6pub struct DuplicateGroup {
7 pub hash: String,
9 pub size: u64,
11 pub count: usize,
13 pub entries: Vec<Entry>,
15 pub wasted_space: u64,
17}
18
19impl DuplicateGroup {
20 pub fn new(hash: String, size: u64, entries: Vec<Entry>) -> Self {
21 let count = entries.len();
22 let wasted_space = if count > 1 {
23 size * (count as u64 - 1)
24 } else {
25 0
26 };
27
28 Self {
29 hash,
30 size,
31 count,
32 entries,
33 wasted_space,
34 }
35 }
36}