rust_commit_tracker/models/
commit.rs

1use 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}