Changes
- Add libwnck-3.0 bindings.
- Many bug fixes and binding updates.
More information and downloads at the Vala homepage.
abstract class Generator<G> {
private bool consumed;
private G value;
private SourceFunc callback;
public Generator () {
helper ();
}
private async void helper () {
yield generate ();
consumed = true;
}
protected abstract async void generate ();
protected async void feed (G value) {
this.value = value;
this.callback = feed.callback;
yield;
}
public bool next () {
return !consumed;
}
public G get () {
var result = value;
callback ();
return result;
}
public Generator<G> iterator () {
return this;
}
}
class IntGenerator : Generator<int> {
protected override async void generate () {
for (int i=0; i < 10; i++) {
yield feed (i);
}
}
}
void main () {
var gen = new IntGenerator ();
foreach (var i in gen) {
message ("%d", i);
}
}
More information and download at the Vala homepage.