Skip to content

Commit a39a451

Browse files
committed
Provide way to serialize comparison::ArtifactData
1 parent 394819d commit a39a451

File tree

2 files changed

+22
-30
lines changed

2 files changed

+22
-30
lines changed

site/src/api.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,6 @@ pub mod comparison {
166166
pub struct Request {
167167
pub start: Bound,
168168
pub end: Bound,
169-
170169
pub stat: String,
171170
}
172171

@@ -186,7 +185,7 @@ pub mod comparison {
186185
pub is_contiguous: bool,
187186
}
188187

189-
/// A serializable wrapper for `comparison::ArtifactData`
188+
/// A serializable wrapper for `comparison::ArtifactData`.
190189
#[derive(Debug, Clone, Serialize)]
191190
pub struct ArtifactData {
192191
pub commit: String,

site/src/comparison.rs

Lines changed: 21 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -100,34 +100,8 @@ pub async fn handle_compare(
100100

101101
Ok(api::comparison::Response {
102102
prev,
103-
a: api::comparison::ArtifactData {
104-
commit: match comparison.a.artifact.clone() {
105-
ArtifactId::Commit(c) => c.sha,
106-
ArtifactId::Artifact(t) => t,
107-
},
108-
date: if let ArtifactId::Commit(c) = &comparison.a.artifact {
109-
Some(c.date)
110-
} else {
111-
None
112-
},
113-
pr: comparison.a.pr,
114-
data: comparison.a.data,
115-
bootstrap: comparison.a.bootstrap,
116-
},
117-
b: api::comparison::ArtifactData {
118-
commit: match comparison.b.artifact.clone() {
119-
ArtifactId::Commit(c) => c.sha,
120-
ArtifactId::Artifact(t) => t,
121-
},
122-
date: if let ArtifactId::Commit(c) = &comparison.b.artifact {
123-
Some(c.date)
124-
} else {
125-
None
126-
},
127-
pr: comparison.b.pr,
128-
data: comparison.b.data,
129-
bootstrap: comparison.b.bootstrap,
130-
},
103+
a: comparison.a.into(),
104+
b: comparison.b.into(),
131105
next,
132106
is_contiguous,
133107
})
@@ -374,6 +348,25 @@ impl ArtifactData {
374348
}
375349
}
376350

351+
impl From<ArtifactData> for api::comparison::ArtifactData {
352+
fn from(data: ArtifactData) -> Self {
353+
api::comparison::ArtifactData {
354+
commit: match data.artifact.clone() {
355+
ArtifactId::Commit(c) => c.sha,
356+
ArtifactId::Artifact(t) => t,
357+
},
358+
date: if let ArtifactId::Commit(c) = &data.artifact {
359+
Some(c.date)
360+
} else {
361+
None
362+
},
363+
pr: data.pr,
364+
data: data.data,
365+
bootstrap: data.bootstrap,
366+
}
367+
}
368+
}
369+
377370
// A comparison of two artifacts
378371
pub struct Comparison {
379372
pub a: ArtifactData,

0 commit comments

Comments
 (0)