2020-09-27 18:35:40 +00:00
|
|
|
pub use unic_langid::LanguageIdentifier;
|
|
|
|
|
|
|
|
pub enum Gender {
|
|
|
|
Other,
|
|
|
|
Male,
|
|
|
|
Female,
|
|
|
|
}
|
|
|
|
|
|
|
|
pub trait Backend: Sized {
|
|
|
|
type Backend: crate::Backend;
|
2020-09-28 09:18:54 +00:00
|
|
|
fn from_id(id: String) -> Self;
|
|
|
|
fn from_language(lang: LanguageIdentifier) -> Self;
|
2020-09-27 18:35:40 +00:00
|
|
|
fn list() -> Vec<Self>;
|
|
|
|
fn name(self) -> String;
|
|
|
|
fn gender(self) -> Gender;
|
|
|
|
fn id(self) -> String;
|
|
|
|
fn language(self) -> LanguageIdentifier;
|
|
|
|
}
|
2020-09-28 09:18:54 +00:00
|
|
|
|
|
|
|
pub struct Voice<T: Backend + Sized>(Box<T>);
|