Use `impl AsRef<str>` instead of `&str` to work with new ID types
This commit is contained in:
		
							parent
							
								
									06caec85b3
								
							
						
					
					
						commit
						6e044c3f35
					
				| 
						 | 
					@ -480,12 +480,12 @@ macro_rules! paged_routes_with_id {
 | 
				
			||||||
                "client.", stringify!($name), "(\"some-id\");\n",
 | 
					                "client.", stringify!($name), "(\"some-id\");\n",
 | 
				
			||||||
                "```"
 | 
					                "```"
 | 
				
			||||||
            ),
 | 
					            ),
 | 
				
			||||||
            pub async fn $name(&self, id: &str) -> Result<Page<$ret>> {
 | 
					            pub async fn $name(&self, id: impl AsRef<str>) -> Result<Page<$ret>> {
 | 
				
			||||||
                use log::{debug, as_debug};
 | 
					                use log::{debug, as_debug};
 | 
				
			||||||
                use uuid::Uuid;
 | 
					                use uuid::Uuid;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                let call_id = Uuid::new_v4();
 | 
					                let call_id = Uuid::new_v4();
 | 
				
			||||||
                let url = self.route(&format!(concat!("/api/v1/", $url), id));
 | 
					                let url = self.route(&format!(concat!("/api/v1/", $url), id.as_ref()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                debug!(url = url, method = stringify!($method), call_id = as_debug!(call_id); "making API request");
 | 
					                debug!(url = url, method = stringify!($method), call_id = as_debug!(call_id); "making API request");
 | 
				
			||||||
                let response = self.authenticated(self.client.$method(&url)).header("Accept", "application/json").send().await?;
 | 
					                let response = self.authenticated(self.client.$method(&url)).header("Accept", "application/json").send().await?;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -153,8 +153,8 @@ impl Mastodon {
 | 
				
			||||||
        Mastodon(Arc::new(MastodonClient { client, data }))
 | 
					        Mastodon(Arc::new(MastodonClient { client, data }))
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fn route(&self, url: &str) -> String {
 | 
					    fn route(&self, url: impl AsRef<str>) -> String {
 | 
				
			||||||
        format!("{}{}", self.data.base, url)
 | 
					        format!("{}{}", self.data.base, url.as_ref())
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// POST /api/v1/filters
 | 
					    /// POST /api/v1/filters
 | 
				
			||||||
| 
						 | 
					@ -171,7 +171,7 @@ impl Mastodon {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// PUT /api/v1/filters/:id
 | 
					    /// PUT /api/v1/filters/:id
 | 
				
			||||||
    pub async fn update_filter(&self, id: &str, request: &mut AddFilterRequest) -> Result<Filter> {
 | 
					    pub async fn update_filter(&self, id: &str, request: &mut AddFilterRequest) -> Result<Filter> {
 | 
				
			||||||
        let url = self.route(&format!("/api/v1/filters/{}", id));
 | 
					        let url = self.route(format!("/api/v1/filters/{}", id));
 | 
				
			||||||
        let response = self.client.put(&url).json(&request).send().await?;
 | 
					        let response = self.client.put(&url).json(&request).send().await?;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        read_response(response).await
 | 
					        read_response(response).await
 | 
				
			||||||
| 
						 | 
					@ -207,9 +207,9 @@ impl Mastodon {
 | 
				
			||||||
    pub async fn get_tagged_timeline(&self, hashtag: String, local: bool) -> Result<Vec<Status>> {
 | 
					    pub async fn get_tagged_timeline(&self, hashtag: String, local: bool) -> Result<Vec<Status>> {
 | 
				
			||||||
        let base = "/api/v1/timelines/tag/";
 | 
					        let base = "/api/v1/timelines/tag/";
 | 
				
			||||||
        let url = if local {
 | 
					        let url = if local {
 | 
				
			||||||
            self.route(&format!("{}{}?local=1", base, hashtag))
 | 
					            self.route(format!("{}{}?local=1", base, hashtag))
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            self.route(&format!("{}{}", base, hashtag))
 | 
					            self.route(format!("{}{}", base, hashtag))
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.get(url).await
 | 
					        self.get(url).await
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue