elevenlabs_rs 0.3.2

A lib crate for ElevenLabs
Documentation
pub use crate::client::{Result, BASE_URL};
pub(crate) use crate::shared::identifiers::*;
pub(crate) use crate::shared::path_segments::*;
pub use crate::shared::query_params::*;
pub use crate::shared::response_bodies::*;
pub use base64::prelude::{Engine, BASE64_STANDARD};
pub use bytes::Bytes;
pub use reqwest::{
    multipart::{Form, Part},
    Method, Response, Url,
};
pub use serde::{Deserialize, Serialize};
pub use serde_json::Value;

pub mod audio_native;
pub mod dubbing;
pub mod history;
pub mod models;
pub mod projects;
pub mod pronunciation;
pub mod samples;
pub mod sound_generation;
pub mod sts;
pub mod tts;
pub mod user;
pub mod voice;
#[deprecated(since = "0.3.2 ", note = "Use `voice_design` instead")]
pub mod voice_generation;
pub mod voice_library;
pub mod audio_isolation;
#[cfg(feature = "dev")]
pub mod conversational_ai;
pub mod voice_design;

#[allow(async_fn_in_trait)]
pub trait Endpoint {
    type ResponseBody;

    fn method(&self) -> Method;
    fn request_body(&self) -> Result<RequestBody> {
        Ok(RequestBody::Empty)
    }
    async fn response_body(self, resp: Response) -> Result<Self::ResponseBody>;
    fn url(&self) -> Url;
}

pub enum RequestBody {
    Json(Value),
    Multipart(Form),
    Empty,
}