1use serde::Serialize;
2
3#[derive(Serialize, Clone)]
6pub struct PersonData {
7 pub label: String,
9 pub full_name: String,
12 pub face_ids: Vec<i64>,
13 pub representative_id: i64,
14 pub hashes: Vec<String>,
15}
16
17#[derive(Serialize, Clone)]
19pub struct ClusterData {
20 pub cluster_id: i64,
21 pub face_ids: Vec<i64>,
22 pub hashes: Vec<String>,
23}
24
25#[derive(Serialize, Clone)]
27pub struct SingletonData {
28 pub face_id: i64,
29 pub hash: String,
30}
31
32#[derive(Serialize, Clone)]
34pub struct FacesData {
35 pub people: Vec<PersonData>,
36 pub clusters: Vec<ClusterData>,
37 pub singletons: Vec<SingletonData>,
38}
39
40#[derive(Serialize, Clone)]
42pub struct ClusterFaceData {
43 pub face_id: i64,
44 pub hash: String,
45 pub path: String,
46}
47
48#[derive(Serialize, Clone)]
50pub struct ClusterDetail {
51 pub cluster_id: i64,
52 pub faces: Vec<ClusterFaceData>,
53}
54
55#[derive(Serialize, Clone)]
58pub struct PersonFaceData {
59 pub face_id: i64,
60 pub hash: String,
61 pub path: String,
62 pub is_primary: bool,
63}
64
65#[derive(Serialize, Clone)]
67pub struct PersonDetail {
68 pub label: String,
70 pub full_name: String,
72 pub faces: Vec<PersonFaceData>,
73}