floopfloop 0.1.0-alpha.3

Official Rust SDK for the FloopFloop API (https://www.floopfloop.com)
Documentation
use crate::error::FloopError;
use crate::projects::urlencoding_encode;
use crate::Client;
use serde::Deserialize;

#[derive(Debug, Clone, Deserialize)]
pub struct SubdomainCheckResult {
    pub slug: String,
    pub available: bool,
    #[serde(default)]
    pub reason: Option<String>,
}

#[derive(Debug, Clone, Deserialize)]
pub struct SubdomainSuggestResult {
    pub slug: String,
}

pub struct Subdomains<'c> {
    pub(crate) client: &'c Client,
}

impl<'c> Subdomains<'c> {
    pub async fn check(&self, slug: &str) -> Result<SubdomainCheckResult, FloopError> {
        let path = format!("/api/v1/subdomains/check?slug={}", urlencoding_encode(slug));
        self.client
            .request_json(reqwest::Method::GET, &path, None)
            .await
    }

    pub async fn suggest(&self, prompt: &str) -> Result<SubdomainSuggestResult, FloopError> {
        let path = format!(
            "/api/v1/subdomains/suggest?prompt={}",
            urlencoding_encode(prompt)
        );
        self.client
            .request_json(reqwest::Method::GET, &path, None)
            .await
    }
}