basis-concept-zig に続いて、Zig 言語のためのイテレータライブラリ iter-zig を作りました。 そこそこ頑張ってReadmeを書いたので詳細はそれを読むことで分かると思います。この記事には書きたいことを書きます(自明)。 Concept イテレータは、値の集合から各要素を高々一度ずつかつ網羅的に列挙するデータ構造のことです*1。 iter-zig ではRustと同じくイテレータコンセプトを以下の条件を満たす型と定めました。 Self: type = @This() 型を持つ Item: type 型を持つ fn next(*Self) ?Item というメソッドを持つ この条件を確認するメタ関数として concept.isIterator: fn (type) bool という関数が用意されています。 comptime assert(!isIterator(u32