Files
dolt/clients/csv/common.go
Chris Masone 4e2c4f24c1 Change csv.Write() signature to broaden uses
The old csv.Write() signature required passing in a Dataset
whose Head() contained a List of structs. Not all data that
we want to export as CSV will be the Head of a Dataset, so
this patch makes the function a bit more flexible.
2016-02-10 11:28:38 -08:00

24 lines
661 B
Go

package csv
import (
"fmt"
"unicode/utf8"
)
// StringToRune returns the rune contained in delimiter or an error.
func StringToRune(delimiter string) (rune, error) {
dlimLen := len(delimiter)
if dlimLen == 0 {
return 0, fmt.Errorf("delimiter flag must contain exactly one character (rune), not an empty string")
}
d, runeSize := utf8.DecodeRuneInString(delimiter)
if d == utf8.RuneError {
return 0, fmt.Errorf("Invalid utf8 string in delimiter flag: %s", delimiter)
}
if dlimLen != runeSize {
return 0, fmt.Errorf("delimiter flag is too long. It must contain exactly one character (rune), but instead it is: %s", delimiter)
}
return d, nil
}