Skip to main content

exa_async/resources/
find_similar.rs

1use crate::client::Client;
2use crate::config::Config;
3use crate::error::ExaError;
4use crate::types::find_similar::FindSimilarRequest;
5use crate::types::find_similar::FindSimilarResponse;
6
7/// API resource for the `/findSimilar` endpoint
8pub struct FindSimilar<'c, C: Config> {
9    client: &'c Client<C>,
10}
11
12impl<'c, C: Config> FindSimilar<'c, C> {
13    /// Creates a new `FindSimilar` resource
14    #[must_use]
15    pub const fn new(client: &'c Client<C>) -> Self {
16        Self { client }
17    }
18
19    /// Find pages similar to the given URL
20    ///
21    /// # Errors
22    ///
23    /// Returns an error if the request fails or the API returns an error.
24    pub async fn create(&self, req: FindSimilarRequest) -> Result<FindSimilarResponse, ExaError> {
25        self.client.post("/findSimilar", req).await
26    }
27}
28
29impl<C: Config> crate::Client<C> {
30    /// Returns the `FindSimilar` API resource
31    #[must_use]
32    pub const fn find_similar(&self) -> FindSimilar<'_, C> {
33        FindSimilar::new(self)
34    }
35}