code: func listPlatforms(c context.Context, req *crimson.ListPlatformsRequest) ([]*crimson.Platform, error) {
  	stmt := squirrel.Select("name", "description", "manufacturer").From("platforms")
  	stmt = selectInString(stmt, "name", req.Names)
  	stmt = selectInString(stmt, "manufacturer", req.Manufacturers)
  	query, args, err := stmt.ToSql()
  	if err != nil {
  		return nil, errors.Annotate(err, "failed to generate statement").Err()
  	}
  
  	db := database.Get(c)
  	rows, err := db.QueryContext(c, query, args...)
  	if err != nil {
  		return nil, errors.Annotate(err, "failed to fetch platforms").Err()
  	}
  	defer rows.Close()
  
  	var platforms []*crimson.Platform
  	for rows.Next() {
  		p := &crimson.Platform{}
  		if err = rows.Scan(&p.Name, &p.Description, &p.Manufacturer); err != nil {
  			return nil, errors.Annotate(err, "failed to fetch platform").Err()
  		}
  		platforms = append(platforms, p)
  	}
  	return platforms, nil
  }
docs: // listPlatforms returns a slice of platforms in the database.