code: func ParseSetValue(elems []string, number uint64) (Set, error) {
  	if number == 0 {
  		return zeroSet, nil
  	}
  
  	value := number
  	var items []string
  	for i := 0; i < len(elems); i++ {
  		if number&setIndexValue[i] > 0 {
  			items = append(items, elems[i])
  			number &= setIndexInvertValue[i]
  		}
  	}
  
  	if number != 0 {
  		return Set{}, errors.Errorf("invalid number %d for Set %v", number, elems)
  	}
  
  	return Set{Name: strings.Join(items, ","), Value: value}, nil
  }
docs: // ParseSetValue creates a Set with special number.