code: func AnyToUUID(value interface{}) (uuid.UUID, error) {
  	switch v := value.(type) {
  	case uuid.UUID:
  		return v, nil
  	case string:
  		return uuid.FromString(v)
  	}
  	return uuid.Nil, errs.Errorf(`value %+v (%[1]T) should be "string" or "uuid"`, value)
  }
docs: // AnyToUUID will return a proper UUID if the given input value is either a
  // string or a uuid.UUID object; otherwise a Nil UUID with an error will be
  // returned. Note, that "00000000-0000-0000-0000-000000000000" and the uuid.Nil
  // object are legal input values that won't produce an error. An empty string
  // will produce an error and it does not translate to uuid.Nil.