code: func fromString(t string) (Type, error) {
  	t = strings.ToLower(t)
  	parts := strings.Split(t, "/")
  	if len(parts) != 2 {
  		return Type{}, fmt.Errorf("cannot parse %q as a media type", t)
  	}
  	mainType := parts[0]
  	subParts := strings.Split(parts[1], "+")
  
  	subType := strings.Split(subParts[0], ";")[0]
  
  	var suffix string
  
  	if len(subParts) > 1 {
  		suffix = subParts[1]
  	}
  
  	return Type{MainType: mainType, SubType: subType, mimeSuffix: suffix}, nil
  }
docs: // FromString creates a new Type given a type string on the form MainType/SubType and
  // an optional suffix, e.g. "text/html" or "text/html+html".