octocrab/api/repos/
tags.rs

1use super::*;
2
3#[derive(serde::Serialize)]
4pub struct ListTagsBuilder<'octo, 'r> {
5    #[serde(skip)]
6    handler: &'r RepoHandler<'octo>,
7    #[serde(skip_serializing_if = "Option::is_none")]
8    per_page: Option<u8>,
9    #[serde(skip_serializing_if = "Option::is_none")]
10    page: Option<u32>,
11}
12
13impl<'octo, 'r> ListTagsBuilder<'octo, 'r> {
14    pub fn new(handler: &'r RepoHandler<'octo>) -> Self {
15        Self {
16            handler,
17            per_page: None,
18            page: None,
19        }
20    }
21
22    /// Results per page (max 100).
23    pub fn per_page(mut self, per_page: impl Into<u8>) -> Self {
24        self.per_page = Some(per_page.into());
25        self
26    }
27
28    /// Page number of the results to fetch.
29    pub fn page(mut self, page: impl Into<u32>) -> Self {
30        self.page = Some(page.into());
31        self
32    }
33
34    /// Sends the actual request.
35    pub async fn send(self) -> crate::Result<crate::Page<crate::models::repos::Tag>> {
36        let route = format!("/{}/tags", self.handler.repo);
37        self.handler.crab.get(route, Some(&self)).await
38    }
39}