You know the part of a program where you've implemented a whole bunch of the low level bits, and you've just started stitching together the higher level interface, and the whole thing feels like it's coming together without any real effort on your part?
I just hit that part in Lucene4c.
I'm sure it'll pass, as I'm bound to run out of lower level bits I've actually implemented soon enough, but for now I actually seem to have enough of it there to provide something useful.
For example, tonight I implemented an interface to let you iterate over all the documents in an index that contain a given field. I had done much of this before, but that was for a given segment, now I'm at the point where I'm stitching together the multiple segments that can be part of an index, and it all seems to be working out so far...
Tomorrow I'll tackle lcn_index_get_document, which should bring me up to the level of functionality I was at in my initial release, but with a whole index instead of a single segment.