Skip to content

Commit

Permalink
Add missing ParamSpec builders, add define_builder_numeric
Browse files Browse the repository at this point in the history
  • Loading branch information
ranfdev committed Feb 18, 2022
1 parent 6be1563 commit bbba561
Showing 1 changed file with 65 additions and 90 deletions.
155 changes: 65 additions & 90 deletions glib/src/param_spec.rs
Expand Up @@ -385,7 +385,7 @@ macro_rules! define_param_spec_numeric {
}

macro_rules! define_builder {
($rust_type:ident, $builder_type:ident, $($field_id:ident: $field_ty:ty $(= $field_expr:expr)?,)*) => {
($rust_type:ident, $builder_type:ident { $($field_id:ident: $field_ty:ty $(= $field_expr:expr)?,)* }) => {
#[derive(Default)]
pub struct $builder_type<'a> {
name: &'a str,
Expand Down Expand Up @@ -440,6 +440,18 @@ macro_rules! define_builder {
}
}
}
macro_rules! define_builder_numeric {
($rust_type:ident, $builder_type:ident, $n_ty:ty) => {
define_builder!(
$rust_type,
$builder_type {
minimum: $n_ty = <$n_ty>::MIN,
maximum: $n_ty = <$n_ty>::MAX,
default_value: $n_ty = <$n_ty as Default>::default(),
}
);
};
}

define_param_spec_numeric!(
ParamSpecChar,
Expand Down Expand Up @@ -481,6 +493,8 @@ impl ParamSpecChar {
}
}

define_builder_numeric!(ParamSpecChar, ParamSpecCharBuilder, i8);

define_param_spec_numeric!(
ParamSpecUChar,
gobject_ffi::GParamSpecUChar,
Expand Down Expand Up @@ -521,13 +535,7 @@ impl ParamSpecUChar {
}
}

define_builder!(
ParamSpecChar,
ParamSpecCharBuilder,
minimum: i8 = i8::MIN,
maximum: i8 = i8::MAX,
default_value: i8 = 0i8,
);
define_builder_numeric!(ParamSpecUChar, ParamSpecUCharBuilder, u8);

define_param_spec!(
ParamSpecBoolean,
Expand Down Expand Up @@ -565,6 +573,13 @@ impl ParamSpecBoolean {
}
}

define_builder!(
ParamSpecBoolean,
ParamSpecBooleanBuilder {
default_value: bool = false,
}
);

define_param_spec_numeric!(
ParamSpecInt,
gobject_ffi::GParamSpecInt,
Expand Down Expand Up @@ -605,13 +620,7 @@ impl ParamSpecInt {
}
}

define_builder!(
ParamSpecInt,
ParamSpecIntBuilder,
minimum: i32 = i32::MIN,
maximum: i32 = i32::MAX,
default_value: i32 = 0i32,
);
define_builder_numeric!(ParamSpecInt, ParamSpecIntBuilder, i32);

define_param_spec_numeric!(
ParamSpecUInt,
Expand Down Expand Up @@ -653,13 +662,7 @@ impl ParamSpecUInt {
}
}

define_builder!(
ParamSpecUInt,
ParamSpecUIntBuilder,
minimum: u32 = u32::MIN,
maximum: u32 = u32::MAX,
default_value: u32 = 0u32,
);
define_builder_numeric!(ParamSpecUInt, ParamSpecUIntBuilder, u32);

define_param_spec_numeric!(
ParamSpecLong,
Expand Down Expand Up @@ -701,13 +704,7 @@ impl ParamSpecLong {
}
}

define_builder!(
ParamSpecLong,
ParamSpecLongBuilder,
minimum: libc::c_long = libc::c_long::MIN,
maximum: libc::c_long = libc::c_long::MAX,
default_value: libc::c_long = 0,
);
define_builder_numeric!(ParamSpecLong, ParamSpecLongBuilder, libc::c_long);

define_param_spec_numeric!(
ParamSpecULong,
Expand Down Expand Up @@ -749,13 +746,7 @@ impl ParamSpecULong {
}
}

define_builder!(
ParamSpecULong,
ParamSpecULongBuilder,
minimum: libc::c_ulong = libc::c_ulong::MIN,
maximum: libc::c_ulong = libc::c_ulong::MAX,
default_value: libc::c_ulong = 0u64,
);
define_builder_numeric!(ParamSpecULong, ParamSpecULongBuilder, libc::c_ulong);

define_param_spec_numeric!(
ParamSpecInt64,
Expand Down Expand Up @@ -797,13 +788,7 @@ impl ParamSpecInt64 {
}
}

define_builder!(
ParamSpecInt64,
ParamSpecInt64Builder,
minimum: i64 = i64::MIN,
maximum: i64 = i64::MAX,
default_value: i64 = 0i64,
);
define_builder_numeric!(ParamSpecInt64, ParamSpecInt64Builder, i64);

define_param_spec_numeric!(
ParamSpecUInt64,
Expand Down Expand Up @@ -845,13 +830,7 @@ impl ParamSpecUInt64 {
}
}

define_builder!(
ParamSpecUInt64,
ParamSpecUInt64Builder,
minimum: u64 = u64::MIN,
maximum: u64 = u64::MAX,
default_value: u64 = 0u64,
);
define_builder_numeric!(ParamSpecUInt64, ParamSpecUInt64Builder, u64);

define_param_spec!(
ParamSpecUnichar,
Expand Down Expand Up @@ -891,8 +870,9 @@ impl ParamSpecUnichar {

define_builder!(
ParamSpecUnichar,
ParamSpecUnicharBuilder,
default_value: char,
ParamSpecUnicharBuilder {
default_value: char,
}
);

define_param_spec!(
Expand Down Expand Up @@ -947,9 +927,10 @@ impl ParamSpecEnum {

define_builder!(
ParamSpecEnum,
ParamSpecEnumBuilder,
enum_type: crate::Type,
default_value: i32 = 0i32,
ParamSpecEnumBuilder {
enum_type: crate::Type,
default_value: i32 = 0i32,
}
);

define_param_spec!(
Expand Down Expand Up @@ -1004,9 +985,10 @@ impl ParamSpecFlags {

define_builder!(
ParamSpecFlags,
ParamSpecFlagsBuilder,
flags_type: crate::Type,
default_value: u32 = 0u32,
ParamSpecFlagsBuilder {
flags_type: crate::Type,
default_value: u32 = 0u32,
}
);

define_param_spec_numeric!(
Expand Down Expand Up @@ -1048,14 +1030,7 @@ impl ParamSpecFloat {
}
}
}

define_builder!(
ParamSpecFloat,
ParamSpecFloatBuilder,
minimum: f32 = f32::MIN,
maximum: f32 = f32::MAX,
default_value: f32 = 0f32,
);
define_builder_numeric!(ParamSpecFloat, ParamSpecFloatBuilder, f32);

define_param_spec_numeric!(
ParamSpecDouble,
Expand Down Expand Up @@ -1096,14 +1071,7 @@ impl ParamSpecDouble {
}
}
}

define_builder!(
ParamSpecDouble,
ParamSpecDoubleBuilder,
minimum: f64 = f64::MIN,
maximum: f64 = f64::MAX,
default_value: f64 = 0f64,
);
define_builder_numeric!(ParamSpecDouble, ParamSpecDoubleBuilder, f64);

define_param_spec!(
ParamSpecString,
Expand Down Expand Up @@ -1152,8 +1120,9 @@ impl ParamSpecString {

define_builder!(
ParamSpecString,
ParamSpecStringBuilder,
default_value: Option<&'a str> = None,
ParamSpecStringBuilder {
default_value: Option<&'a str> = None,
}
);

define_param_spec!(
Expand Down Expand Up @@ -1192,8 +1161,9 @@ impl ParamSpecParam {

define_builder!(
ParamSpecParam,
ParamSpecParamBuilder,
param_type: crate::Type,
ParamSpecParamBuilder {
param_type: crate::Type,
}
);

define_param_spec!(
Expand Down Expand Up @@ -1232,8 +1202,9 @@ impl ParamSpecBoxed {

define_builder!(
ParamSpecBoxed,
ParamSpecBoxedBuilder,
boxed_type: crate::Type,
ParamSpecBoxedBuilder {
boxed_type: crate::Type,
}
);

define_param_spec!(
Expand Down Expand Up @@ -1263,7 +1234,7 @@ impl ParamSpecPointer {
}
}

define_builder!(ParamSpecPointer, ParamSpecPointerBuilder,);
define_builder!(ParamSpecPointer, ParamSpecPointerBuilder {});

define_param_spec!(
ParamSpecValueArray,
Expand Down Expand Up @@ -1319,8 +1290,9 @@ impl ParamSpecValueArray {

define_builder!(
ParamSpecValueArray,
ParamSpecValueArrayBuilder,
element_spec: &'a ParamSpec,
ParamSpecValueArrayBuilder {
element_spec: &'a ParamSpec,
}
);

define_param_spec!(
Expand Down Expand Up @@ -1359,8 +1331,9 @@ impl ParamSpecObject {

define_builder!(
ParamSpecObject,
ParamSpecObjectBuilder,
object_type: crate::Type,
ParamSpecObjectBuilder {
object_type: crate::Type,
}
);

define_param_spec!(
Expand Down Expand Up @@ -1526,8 +1499,9 @@ impl ParamSpecGType {

define_builder!(
ParamSpecGType,
ParamSpecGTypeBuilder,
is_a_type: crate::Type = crate::Type::UNIT,
ParamSpecGTypeBuilder {
is_a_type: crate::Type = crate::Type::UNIT,
}
);

define_param_spec!(
Expand Down Expand Up @@ -1587,9 +1561,10 @@ impl ParamSpecVariant {

define_builder!(
ParamSpecVariant,
ParamSpecVariantBuilder,
type_: &'a crate::VariantTy,
default_value: Option<&'a crate::Variant> = None,
ParamSpecVariantBuilder {
type_: &'a crate::VariantTy,
default_value: Option<&'a crate::Variant> = None,
}
);

#[cfg(test)]
Expand Down

0 comments on commit bbba561

Please sign in to comment.