api.spaceplanner.app

Spaceplanner API
git clone git://jacobedwards.org/api.spaceplanner.app
Log | Files | Refs

db.go (352B)


      1 package backend
      2 
      3 import "database/sql"
      4 
      5 type Scanner interface {
      6 	Scan(dest ...any) error
      7 }
      8 
      9 func collectRows[T any](rows *sql.Rows, collector func(Scanner) (T, error)) ([]T, error) {
     10 	var things []T
     11 
     12 	for rows.Next() {
     13 		thing, err := collector(rows)
     14 		if err != nil {
     15 			return nil, err
     16 		}
     17 		things = append(things, thing)
     18 	}
     19 
     20 	return things, nil
     21 }