1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use crate::commit::Commit;
use crate::error::Result;
#[derive(Default, Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Release<'a> {
pub version: Option<String>,
pub commits: Vec<Commit<'a>>,
#[serde(rename = "commit_id")]
pub commit_id: Option<String>,
pub timestamp: i64,
pub previous: Option<Box<Release<'a>>>,
}
pub struct Releases<'a>(pub &'a Vec<Release<'a>>);
impl<'a> Releases<'a> {
pub fn as_json(&self) -> Result<String> {
Ok(serde_json::to_string(self.0)?)
}
}