Re: [Vala] Libgee's Roadmap proposal
- From: Quikee <quikee gmail com>
- To: Vala-list gnome org
- Subject: Re: [Vala] Libgee's Roadmap proposal
- Date: Wed, 22 Jul 2009 14:02:11 +0200
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.
I still have the code of the changes (including tests) somewhere - I
will seek them out and merge them with the latest libgee version.
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.
Regards, Tomaž
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]