code: func rectangleFromPredicate(predicate, kind string) (*camtypes.LocationBounds, error) {
  	errNotARectangle := fmt.Errorf("not a valid %v predicate", kind)
  	if !strings.HasPrefix(predicate, kind+":") {
  		return nil, errNotARectangle
  	}
  	loc := strings.TrimPrefix(predicate, kind+":")
  	coords := strings.Split(loc, ",")
  	if len(coords) != 4 {
  		return nil, errNotARectangle
  	}
  	var coord [4]float64
  	for k, v := range coords {
  		f, err := strconv.ParseFloat(v, 64)
  		if err != nil {
  			return nil, errNotARectangle
  		}
  		coord[k] = f
  	}
  	return &camtypes.LocationBounds{
  		North: coord[0],
  		South: coord[2],
  		East:  coord[3],
  		West:  coord[1],
  	}, nil
  }
docs: // rectangleFromPredicate, if predicate is a valid location predicate of the given kind
  // and returns the corresponding rectangular area.