formatifier.go
func ToPhone(theString, delimiter string) (string, error) {
	f := New(theString)
	f.removeNonDigits()

	if f.length < 10 {
		return "", errors.New(lengthError)
	}

	var buffer bytes.Buffer
	count := 0
	switch f.length {
	case 10:
		buffer.WriteString("(")
		for _, i := range f.theString {
			count++
			buffer.WriteString(string(i))
			switch count {
			case 3:
				buffer.WriteString(") ")
			case 6:
				buffer.WriteString(fmt.Sprintf("%s", delimiter))
			}
		}
	case 11:
		for _, i := range f.theString {
			count++
			buffer.WriteString(string(i))
			switch count {
			case 1:
				buffer.WriteString(" (")
			case 4:
				buffer.WriteString(") ")
			case 7:
				buffer.WriteString(fmt.Sprintf("%s", delimiter))
			}
		}
	default:
		return "", errors.New("non US number given")
	}
	return buffer.String(), nil
}
func ToPhone(theString, delimiter string) (string, error) {
	f := New(theString)
	f.removeNonDigits()

	if f.length < 10 {
		return "", errors.New(lengthError)
	}

	var buffer bytes.Buffer
	count := 0
	switch f.length {
	case 10:
		buffer.WriteString("(")
		for _, i := range f.theString {
			count++
			buffer.WriteString(string(i))
			switch count {
			case 3:
				buffer.WriteString(") ")
			case 6:
				buffer.WriteString(fmt.Sprintf("%s", delimiter))
			}
		}
	case 11:
		for _, i := range f.theString {
			count++
			buffer.WriteString(string(i))
			switch count {
			case 1:
				buffer.WriteString(" (")
			case 4:
				buffer.WriteString(") ")
			case 7:
				buffer.WriteString(fmt.Sprintf("%s", delimiter))
			}
		}
	default:
		return "", errors.New("non US number given")
	}
	return buffer.String(), nil
}
// ToPhone will format the provided string as a Phone Number.  Only supports
// US numbers currently.