use crate::ffi;
use glib::{prelude::*, translate::*};
glib::wrapper! {
#[doc(alias = "SpellingLanguage")]
pub struct Language(Object<ffi::SpellingLanguage, ffi::SpellingLanguageClass>);
match fn {
type_ => || ffi::spelling_language_get_type(),
}
}
impl Language {
pub fn builder() -> LanguageBuilder {
LanguageBuilder::new()
}
#[doc(alias = "spelling_language_get_code")]
#[doc(alias = "get_code")]
pub fn code(&self) -> Option<glib::GString> {
unsafe { from_glib_none(ffi::spelling_language_get_code(self.to_glib_none().0)) }
}
#[doc(alias = "spelling_language_get_group")]
#[doc(alias = "get_group")]
pub fn group(&self) -> Option<glib::GString> {
unsafe { from_glib_none(ffi::spelling_language_get_group(self.to_glib_none().0)) }
}
#[doc(alias = "spelling_language_get_name")]
#[doc(alias = "get_name")]
pub fn name(&self) -> Option<glib::GString> {
unsafe { from_glib_none(ffi::spelling_language_get_name(self.to_glib_none().0)) }
}
}
#[must_use = "The builder must be built to be used"]
pub struct LanguageBuilder {
builder: glib::object::ObjectBuilder<'static, Language>,
}
impl LanguageBuilder {
fn new() -> Self {
Self {
builder: glib::object::Object::builder(),
}
}
pub fn code(self, code: impl Into<glib::GString>) -> Self {
Self {
builder: self.builder.property("code", code.into()),
}
}
pub fn group(self, group: impl Into<glib::GString>) -> Self {
Self {
builder: self.builder.property("group", group.into()),
}
}
pub fn name(self, name: impl Into<glib::GString>) -> Self {
Self {
builder: self.builder.property("name", name.into()),
}
}
#[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
pub fn build(self) -> Language {
assert_initialized_main_thread!();
self.builder.build()
}
}