Files
sqlite3/ext/csv/arg.go

36 lines
734 B
Go
Raw Normal View History

2024-01-03 00:54:30 +00:00
package csv
import (
"fmt"
"strconv"
2024-10-22 23:32:57 +01:00
"github.com/ncruces/go-sqlite3/util/sql3util"
2024-01-03 00:54:30 +00:00
)
func uintArg(key, val string) (int, error) {
i, err := strconv.ParseUint(val, 10, 15)
if err != nil {
return 0, fmt.Errorf("csv: invalid %q parameter: %s", key, val)
}
return int(i), nil
}
func boolArg(key, val string) (bool, error) {
if val == "" {
return true, nil
}
2024-10-22 23:32:57 +01:00
b, ok := sql3util.ParseBool(val)
2024-01-03 00:54:30 +00:00
if ok {
return b, nil
}
return false, fmt.Errorf("csv: invalid %q parameter: %s", key, val)
}
func runeArg(key, val string) (rune, error) {
2024-10-22 23:32:57 +01:00
r, _, tail, err := strconv.UnquoteChar(sql3util.Unquote(val), 0)
2024-01-03 00:54:30 +00:00
if tail != "" || err != nil {
return 0, fmt.Errorf("csv: invalid %q parameter: %s", key, val)
}
return r, nil
}