That's slick, but it has nothing to do with inside-out objects. With inside-out objects, the point is to have one variable per column rather than one per row, to put it in table terms. It lets you take advantage of the fact that the set of columns is static (per class), so you can use my variables to hold them. The advantage, specifically, is that you get name checking at compile time, which you don't (normally) get for hash elements.
I think (though I'm not sure) that the approach you've shown doesn't invert the row/column order (it's this inversion that gives "inside-out" its name)... but it
certainly doesn't allocate one compiletime-checkable variable per column (i.e. field).
We're building the house of the future together.