Re: [Vala] Libgee's Roadmap proposal



Hi Tomaž,

Quikee wrote:
Hi,

A little more than a year ago I have made a proposal to extend LibGee
when I rewrote the tests for it, but at that time there was not much
interest in the changes. It may be good to repeat what I had in mind
at that time:

I would also like to propose an extension to the interfaces in form of additional convenient / often used 
methods. What I had in mind is this:

Collection interface:
- void add_all(Collection) - Adds all items from the input collection to this collection. Convenient for 
joining collections. Java also has this on the interface of Collection.
- bool contains_all(Collection) - Checks if all items in the input collection are present in this 
collection. Convenient for checking items for example if "a" AND "b" exist in collection.
- bool contains_any(Collection) - Checks if any items in the input collection are present in this 
collection. Convenient for checking items for example if "a" OR "b" exist in collection.
- bool is_empty() - special state of a collection when it doesn't contain any value. Added because it is 
clearer as list.size == 0.

List interface
- G first()
- G last() - First and last items are often special - it adds better clarity to the algorithm if they 
don't need to be "addressed" as list.get(0) or worse list.get(list.size -1).

Set interface

Map interface
- void set_all(Map) - Same as add_all for collections.
- expose Node<K,V> and make it possible to iterate through Nodes:
foreach (Node<int,int> item in map.get_nodes()) {
}

Iterators
 - It would be convenient to have a reverse iterator for lists which would also allow to iterate backwards.
 - class with special iterators/iterables that can iterate Forward / Backwards, skip elements, iterate 
through enumerated list, generators

Some of the things have already been proposed and there are other
things on my mind that could be done.

Indeed all those would be very nice contributions!!

I still have the code of the changes (including tests) somewhere - I
will seek them out and merge them with the latest libgee version.

I hope you mean rebase :)

Maybe it would be a good thing to add on the libgee wiki a subpage
with proposed changes/additions so that all this things aren't
forgotten.

That would be a good idea, yeah.

Best regards, Didier.





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]