A few notes: I went the path of least resistance also assuming it would
break fewer folks, i.e. make Row more like Rows and thus usize -> i32.
Arguably, an unsigned type might be more appropriate both for length and
indexes. I understand that the i32 stems from the sqlite bindings, which
returns/accepts c_ints. Yet, Statement and Row made the jump to an
unsigned, probably drawing the same conclusion, whereas Rows preserved
its proximity to the c-bindings. This is probably an artifact?
Also going on a limb, mapping c_int -> i32 is already a non-portable
choice, with precision for c_int being platform dependent.