1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
// Take a look at the license at the top of the repository in the LICENSE file.
use crate::{Checker, Provider};
impl Checker {
// rustdoc-stripper-ignore-next
/// Creates a new builder-pattern struct instance to construct [`Checker`] objects.
///
/// This method returns an instance of [`CheckerBuilder`](crate::builders::CheckerBuilder) which can be used to create [`Checker`] objects.
pub fn builder() -> CheckerBuilder {
CheckerBuilder::new()
}
}
// rustdoc-stripper-ignore-next
/// A [builder-pattern] type to construct [`Checker`] objects.
///
/// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
#[must_use = "The builder must be built to be used"]
pub struct CheckerBuilder {
builder: glib::object::ObjectBuilder<'static, Checker>,
}
impl CheckerBuilder {
fn new() -> Self {
Self {
builder: glib::object::Object::builder(),
}
}
pub fn language(self, language: impl Into<glib::GString>) -> Self {
Self {
builder: self.builder.property("language", language.into()),
}
}
pub fn provider(self, provider: &Provider) -> Self {
Self {
builder: self.builder.property("provider", provider.clone()),
}
}
// rustdoc-stripper-ignore-next
/// Build the [`Checker`].
#[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
pub fn build(self) -> Checker {
self.builder.build()
}
}