Generate method ```go func (s *Struct) Scan(row *sql.Row) error { } ``` It should use column names. How to deal with extra or missing columns is an open question. Return special error type? Accept a slice of column names as the last argument?