Skip to main content

mesa_dev/client/
diff.rs

1use crate::low_level::apis::{diffs_api, Error};
2use crate::models;
3
4use super::RepoClient;
5
6/// Client for diff operations (`/{org}/{repo}/diff`).
7#[derive(Clone, Debug)]
8pub struct DiffClient<'a> {
9    pub(super) repo: &'a RepoClient<'a>,
10}
11
12impl DiffClient<'_> {
13    /// Retrieve the diff between two refs.
14    ///
15    /// # Errors
16    ///
17    /// Returns an error if the API request fails.
18    #[tracing::instrument(skip(self), fields(org = self.repo.org.org, repo = self.repo.repo), err(Debug))]
19    pub async fn get(
20        &self,
21        base: &str,
22        head: &str,
23    ) -> Result<models::GetByOrgByRepoDiff200Response, Error<diffs_api::GetByOrgByRepoDiffError>>
24    {
25        diffs_api::get_by_org_by_repo_diff(
26            self.repo.org.config,
27            self.repo.org.org,
28            self.repo.repo,
29            Some(base),
30            Some(head),
31        )
32        .await
33    }
34}