Hi everyone. I'm currently writing up a .vapi file to create bindings for the libmusicbrainz4 library's C interface (download at http://musicbrainz.org/doc/libmusicbrainz - online documentation at http://users.musicbrainz.org/~luks/docs/libmusicbrainz4/mb4__c_8h.html )
It has a list type, which is defined as typedef void* Mb4ArtistList; typedef void* Mb4Artist; int mb4_artist_list_size(Mb4ArtistList l); Mb4Artist mb4_artist_list_item(Mb4ArtistList l, int i); ... Right now, my bindings for this look like [CCode (cheader_filename = "musicbrainz4/mb4_c.h")] namespace Mb4 { [Compact] public class ArtistList { [CCode (cname = "mb4_artist_list_item")] public unowned Artist? get(int item); public int length { [CCode (cname = "mb4_artist_list_size")] get; } } } which seems to work, allowing it to be accessed like an array (artist_list[2] and artist_list.length work). But I can't use it with the foreach loop, because it doesn't have an iterator method - even though you can use foreach on an array. I assume this is special cased? Is there any way to add an iterator class to my .vapi file so I can use foreach, or any plans to allow foreach on types which provide a length property and get(index) method? -- Calvin Walton <calvin.wal...@kepstin.ca> _______________________________________________ vala-list mailing list vala-list@gnome.org http://mail.gnome.org/mailman/listinfo/vala-list