mirror of
https://github.com/ncruces/go-sqlite3.git
synced 2026-01-12 14:09:13 +00:00
37 lines
777 B
Go
37 lines
777 B
Go
package csv
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
|
|
"github.com/ncruces/go-sqlite3/internal/util"
|
|
"github.com/ncruces/go-sqlite3/util/vtabutil"
|
|
)
|
|
|
|
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
|
|
}
|
|
b, ok := util.ParseBool(val)
|
|
if ok {
|
|
return b, nil
|
|
}
|
|
return false, fmt.Errorf("csv: invalid %q parameter: %s", key, val)
|
|
}
|
|
|
|
func runeArg(key, val string) (rune, error) {
|
|
r, _, tail, err := strconv.UnquoteChar(vtabutil.Unquote(val), 0)
|
|
if tail != "" || err != nil {
|
|
return 0, fmt.Errorf("csv: invalid %q parameter: %s", key, val)
|
|
}
|
|
return r, nil
|
|
}
|