1use crate::client::{Client, decode_response, handle_empty_response};
4use crate::errors::Error;
5use crate::types::*;
6
7impl Client {
8 pub async fn list_favorites(
10 &self,
11 opts: Option<&QueryOptions>,
12 ) -> Result<Vec<Repository>, Error> {
13 let path = "/user/starred";
14 let resp = self.send_get(&path, opts).await?;
15 decode_response(resp).await
16 }
17
18 pub async fn is_starred(&self, owner: &str, repo: &str) -> Result<(), Error> {
20 let path = format!("/user/starred/{}/{}", owner, repo);
21 let resp = self.send_get(&path, None).await?;
22 handle_empty_response(resp).await
23 }
24
25 pub async fn star(&self, owner: &str, repo: &str) -> Result<(), Error> {
27 let path = format!("/user/starred/{}/{}", owner, repo);
28 let resp = self.send_put(&path, Option::<&()>::None).await?;
29 handle_empty_response(resp).await
30 }
31
32 pub async fn unstar(&self, owner: &str, repo: &str) -> Result<(), Error> {
34 let path = format!("/user/starred/{}/{}", owner, repo);
35 let resp = self.send_delete(&path, Option::<&()>::None).await?;
36 handle_empty_response(resp).await
37 }
38}