I think this change is OK: I just want to mention that avoiding SegmentReadState
was definitely intentional... well most of my issues are really based on
SegmentWriteState, but I think the whole concept is broken, see below:
SegmentWriteState is bad news, for many codec APIs
they would be underpopulated, or even have bogus data!
For example, what would be SegmentWriteState.numDocs for StoredFieldsWriter?
I understand that at a glance having foo(A) where A has A.B and A.C and A.D seems simpler than foo(B, C),
but I think its confusing to pass "A" at all if there is an A.D thats somehow bogus, invalid, etc.
In that case its actually much clearer to pass B and C directly... personally I think we
should revisit these 'argument holder' APIs and likely remove them completely.
Because of that: for most codec APIs I avoided SegmentWriteState and also SegmentReadState (for symmetry).