Prechádzať zdrojové kódy

Breaking API changes lol

Billy Barrow 1 mesiac pred
rodič
commit
f4c69f94f8

+ 20 - 0
src/lib/Concrete/PropertyGroupEnumerable.vala

@@ -0,0 +1,20 @@
+namespace Invercargill {
+
+    public class PropertyGroups : ProxyEnumerable<Properties>, Promotion<Properties> {
+
+        public Enumerable<Properties> wrap (Enumerable<Properties> enumerable) {
+            inner = enumerable;
+            return this;
+        }
+
+        public bool can_wrap (GLib.Type element_type) {
+            return element_type.is_a (typeof(Properties));
+        }
+
+        public new Attempts<Tout> try_map_with<Tout>(PropertyMapper<Tout> mapper) {
+            return inner.try_map_with<Tout>(mapper);
+        }
+
+    }
+
+}

+ 2 - 6
src/lib/Concrete/ProxyEnumerable.vala

@@ -221,12 +221,8 @@ namespace Invercargill {
             return inner.cache();
         }
 
-        public override Enumerable<Tout> convert<Tout>(owned ErrorTransformDelegate<T, Tout> transform) throws Error {
-            return convert<Tout>(transform);
-        }
-
-        public override Enumerable<Tout> convert_many<Tout>(owned ErrorTransformDelegate<T, Enumerable<Tout>> transform) throws Error {
-            return convert_many<Tout>(transform);
+        public override Attempts<Tout> try_map_with<Tout>(Mapper<Tout, T> mapper) {
+            return inner.try_map_with<Tout>(mapper);
         }
 
     }

+ 0 - 2
src/lib/Delegates.vala

@@ -6,8 +6,6 @@ namespace Invercargill {
 
     public delegate Tout TransformDelegate<Tin, Tout>(Tin item);
 
-    public delegate Tout ErrorTransformDelegate<Tin, Tout>(Tin item) throws Error;
-
     public delegate bool PredicateDelegate<T>(T item);
 
     public delegate Taggrigate AggrigateDelegate<Taggrigate, Tin>(Taggrigate aggrigate, Tin item);

+ 2 - 10
src/lib/Enumerable.vala

@@ -443,16 +443,8 @@ namespace Invercargill {
             return series;
         }
 
-        public virtual Enumerable<Tout> convert<Tout>(owned ErrorTransformDelegate<T, Tout> transform) throws Error {
-            var series = new Series<Tout>();
-            foreach (var item in this) {
-                series.add(transform(item));
-            }
-            return series.seal();
-        }
-
-        public virtual Enumerable<Tout> convert_many<Tout>(owned ErrorTransformDelegate<T, Enumerable<Tout>> transform) throws Error {
-            return convert<Enumerable<Tout>>(i => transform(i)).select_many(i => i);
+        public virtual Attempts<Tout> try_map_with<Tout>(Mapper<Tout, T> mapper) {
+            return try_select<Tout>(o => mapper.materialise(o));
         }
 
         private PredicateDelegate<T> resolve_nullable_predicate(PredicateDelegate<T>? predicate) {

+ 6 - 6
src/lib/PropertyMapper.vala

@@ -93,11 +93,11 @@ namespace Invercargill {
             return this;
         }
 
-        public PropertyMapperBuilder<T> map_with<TObj>(string name, owned PropertyGetter<T, TObj> getter, owned PropertySetter<T, TObj> setter, PropertyMapper<TObj> mapper, bool mandatory = true) {
-            return map_through<TObj, Properties>(name, getter, setter, mapper, mandatory);
+        public PropertyMapperBuilder<T> map_properties_with<TObj>(string name, owned PropertyGetter<T, TObj> getter, owned PropertySetter<T, TObj> setter, PropertyMapper<TObj> mapper, bool mandatory = true) {
+            return map_with<TObj, Properties>(name, getter, setter, mapper, mandatory);
         }
 
-        public PropertyMapperBuilder<T> map_through<TNative, TElement>(string name, owned PropertyGetter<T, TNative> getter, owned PropertySetter<T, TNative> setter, Mapper<TNative, TElement> mapper, bool mandatory = true) {
+        public PropertyMapperBuilder<T> map_with<TNative, TElement>(string name, owned PropertyGetter<T, TNative> getter, owned PropertySetter<T, TNative> setter, Mapper<TNative, TElement> mapper, bool mandatory = true) {
             add_mapping(new PropertyMapping<T>() {
                 name = name,
                 mandatory = mandatory,
@@ -117,11 +117,11 @@ namespace Invercargill {
             return this;
         }
 
-        public PropertyMapperBuilder<T> map_many_with<TObj>(string name, owned PropertyGetter<T, Enumerable<TObj>> getter, owned PropertySetter<T, Enumerable<TObj>> setter, PropertyMapper<TObj> mapper, bool mandatory = true) {
-            return map_many_through<TObj, Properties>(name, getter, setter, mapper, mandatory);
+        public PropertyMapperBuilder<T> map_property_groups_with<TObj>(string name, owned PropertyGetter<T, Enumerable<TObj>> getter, owned PropertySetter<T, Enumerable<TObj>> setter, PropertyMapper<TObj> mapper, bool mandatory = true) {
+            return map_many_with<TObj, Properties>(name, getter, setter, mapper, mandatory);
         }
 
-        public PropertyMapperBuilder<T> map_many_through<TNative, TElement>(string name, owned PropertyGetter<T, Enumerable<TNative>> getter, owned PropertySetter<T, Enumerable<TNative>> setter, Mapper<TNative, TElement> mapper, bool mandatory = true) {
+        public PropertyMapperBuilder<T> map_many_with<TNative, TElement>(string name, owned PropertyGetter<T, Enumerable<TNative>> getter, owned PropertySetter<T, Enumerable<TNative>> setter, Mapper<TNative, TElement> mapper, bool mandatory = true) {
             add_mapping(new PropertyMapping<T>() {
                 name = name,
                 mandatory = mandatory,

+ 1 - 0
src/lib/meson.build

@@ -60,6 +60,7 @@ sources += files('Concrete/SealedEnumerable.vala')
 sources += files('Concrete/EquatableEnumerable.vala')
 sources += files('Concrete/AttemptEnumerable.vala')
 sources += files('Concrete/CacheEnumerable.vala')
+sources += files('Concrete/PropertyGroupEnumerable.vala')
 
 sources += files('Collections/Collection.vala')
 sources += files('Collections/Series.vala')