فهرست منبع

Add "length" property to Lot interface

Billy Barrow 2 هفته پیش
والد
کامیت
f120568a27

+ 2 - 0
src/lib/DataStructures/Buffer.vala

@@ -22,6 +22,8 @@ namespace Invercargill.DataStructures {
             return new EnumerableInfo.infer_ultimate(this, EnumerableCategory.IN_MEMORY);
         }
 
+        public override uint length { get { return array.length; }}
+
         public Buffer(uint size) {
             array = new T[size];
             safe_read = get_safe_read_function_for<T>();

+ 2 - 0
src/lib/DataStructures/Dictionary.vala

@@ -15,6 +15,8 @@ namespace Invercargill.DataStructures {
             return new EnumerableInfo.infer_ultimate (this, EnumerableCategory.IN_MEMORY);
         }
 
+        public override uint length { get { return hash_set.length; }}
+
         public Dictionary(HashDelegate<TKey>? key_hash_func = null, EqualityDelegate<TKey>? key_equal_func = null) {
             hash_func = key_hash_func ?? Operators.hash<TKey>();
             equal_func = key_equal_func ?? Operators.equality<TKey>();

+ 2 - 0
src/lib/DataStructures/HashSet.vala

@@ -80,6 +80,8 @@ namespace Invercargill.DataStructures {
             return n_items;
         }
 
+        public override uint length { get { return n_items; }}
+
         public override EnumerableInfo get_info() {
             return new EnumerableInfo.infer_ultimate (this, EnumerableCategory.IN_MEMORY);
         }

+ 2 - 0
src/lib/DataStructures/ImmutableBuffer.vala

@@ -21,6 +21,8 @@ namespace Invercargill.DataStructures {
             return new EnumerableInfo.infer_ultimate(this, EnumerableCategory.IN_MEMORY);
         }
 
+        public override uint length { get { return array.length; }}
+
         public ImmutableBuffer(Enumerable<T> items) {
             array = items.to_array();
             safe_read = get_safe_read_function_for<T>();

+ 2 - 0
src/lib/DataStructures/RingBuffer.vala

@@ -18,6 +18,8 @@ namespace Invercargill.DataStructures {
             return new EnumerableInfo.infer_ultimate(this, EnumerableCategory.IN_MEMORY);
         }
 
+        public override uint length { get { return array.length; }}
+
         public RingBuffer(uint size) {
             array = new T[size];
             safe_read = get_safe_read_function_for<T>();

+ 2 - 0
src/lib/DataStructures/Series.vala

@@ -30,6 +30,8 @@ namespace Invercargill.DataStructures {
             return new SeriesTracker<T>(root);
         }
 
+        public override uint length { get { return n_items; }}
+
         public override T[] to_array () {
             var arr = new T[n_items];
             var count = 0;

+ 2 - 0
src/lib/DataStructures/SortedSeries.vala

@@ -57,6 +57,8 @@ namespace Invercargill.DataStructures {
         private CompareDelegate<T> comparitor;
         private int n_items;
 
+        public override uint length { get { return n_items; }}
+
         public SortedSeries(owned CompareDelegate<T>? comparitor = null) {
             nil = new SeriesNode<T>.nil();
             root = nil;

+ 2 - 0
src/lib/DataStructures/SortedVector.vala

@@ -23,6 +23,8 @@ namespace Invercargill.DataStructures {
             return vector.get_tracker();
         }
 
+        public override uint length { get { return vector.length; }}
+
         public void add(T item) {
             lock(vector) {
                 uint index;

+ 2 - 0
src/lib/DataStructures/Vector.vala

@@ -32,6 +32,8 @@ namespace Invercargill.DataStructures {
             return new EnumerableInfo.infer_ultimate (this, EnumerableCategory.IN_MEMORY);
         }
 
+        public override uint length { get { return n_items; }}
+
         public override Tracker<T> get_tracker() {
             return new AddressableTracker<T>(this);
         }

+ 1 - 1
src/lib/Interfaces/Lot.vala

@@ -2,7 +2,7 @@ namespace Invercargill {
 
     [GenericAccessors]
     public interface Lot<T> : Enumerable<T> {
-
+        public abstract uint length { get; }
     }
 
 }

+ 2 - 0
src/lib/Wrappers/Array.vala

@@ -20,6 +20,8 @@ namespace Invercargill.Wrappers {
             return new EnumerableInfo.infer_ultimate (this, EnumerableCategory.IN_MEMORY);
         }
 
+        public override uint length { get { return array.length; }}
+
         public override Tracker<T> get_tracker() {
             var i = 0;
             return new LambdaTracker<T>(