rust_commit_tracker/models/
commit.rs1use serde::Deserialize;
2
3#[derive(Debug, Clone, Deserialize)]
4pub struct CommitsResponse {
5 pub total: u32,
6 pub skip: u32,
7 pub take: u32,
8 pub results: Vec<CommitInfo>,
9}
10
11#[derive(Debug, Clone, Deserialize)]
12pub struct CommitInfo {
13 pub id: i32,
14 pub repo: String,
15 pub branch: String,
16 pub changeset: String,
17 pub created: String,
18 pub likes: u32,
19 pub dislikes: u32,
20 pub message: String,
21 pub user: CommitUser,
22}
23
24#[derive(Debug, Clone, Deserialize)]
25pub struct CommitUser {
26 pub name: String,
27 pub avatar: String,
28}
29
30impl CommitInfo {
31 pub fn link(&self) -> String {
32 format!("https://commits.facepunch.com/{}", self.id)
33 }
34
35 pub fn avatar_url(&self) -> &str {
36 &self.user.avatar
37 }
38
39 pub fn author(&self) -> &str {
40 &self.user.name
41 }
42}