mirror of
https://github.com/kataras/iris.git
synced 2025-12-21 11:57:02 +00:00
add more PostValueXXX methods as requested at: https://github.com/kataras/iris/discussions/1922
This commit is contained in:
210
context/strconv.go
Normal file
210
context/strconv.go
Normal file
@@ -0,0 +1,210 @@
|
||||
package context
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
||||
func strParseUint(value string) (uint, error) {
|
||||
result, err := strconv.ParseUint(value, 10, strconv.IntSize)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return uint(result), nil
|
||||
}
|
||||
|
||||
func strParseUint8(value string) (uint8, error) {
|
||||
result, err := strconv.ParseUint(value, 10, 8)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return uint8(result), nil
|
||||
}
|
||||
|
||||
func strParseUint16(value string) (uint16, error) {
|
||||
result, err := strconv.ParseUint(value, 10, 16)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return uint16(result), nil
|
||||
}
|
||||
|
||||
func strParseUint32(value string) (uint32, error) {
|
||||
result, err := strconv.ParseUint(value, 10, 32)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return uint32(result), nil
|
||||
}
|
||||
|
||||
func strParseUint64(value string) (uint64, error) {
|
||||
result, err := strconv.ParseUint(value, 10, 64)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func strParseInt(value string) (int, error) {
|
||||
result, err := strconv.Atoi(value)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func strParseInt8(value string) (int8, error) {
|
||||
result, err := strconv.ParseInt(value, 10, 8)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return int8(result), nil
|
||||
}
|
||||
|
||||
func strParseInt16(value string) (int16, error) {
|
||||
result, err := strconv.ParseInt(value, 10, 16)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return int16(result), nil
|
||||
}
|
||||
|
||||
func strParseInt32(value string) (int32, error) {
|
||||
result, err := strconv.ParseInt(value, 10, 32)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return int32(result), nil
|
||||
}
|
||||
|
||||
func strParseInt64(value string) (int64, error) {
|
||||
result, err := strconv.ParseInt(value, 10, 64)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func strParseFloat32(value string) (float32, error) {
|
||||
result, err := strconv.ParseFloat(value, 32)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return float32(result), nil
|
||||
}
|
||||
|
||||
func strParseFloat64(value string) (float64, error) {
|
||||
result, err := strconv.ParseFloat(value, 64)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func strParseComplex64(value string) (complex64, error) {
|
||||
result, err := strconv.ParseComplex(value, 64)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return complex64(result), nil
|
||||
}
|
||||
|
||||
func strParseComplex128(value string) (complex128, error) {
|
||||
result, err := strconv.ParseComplex(value, 128)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func strParseBool(value string) (bool, error) {
|
||||
result, err := strconv.ParseBool(value)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
var dayNames = map[string]time.Weekday{
|
||||
// longDayNames.
|
||||
"Sunday": time.Sunday,
|
||||
"Monday": time.Monday,
|
||||
"Tuesday": time.Tuesday,
|
||||
"Wednesday": time.Wednesday,
|
||||
"Thursday": time.Thursday,
|
||||
"Friday": time.Friday,
|
||||
"Saturday": time.Saturday,
|
||||
// longDayNames: lowercase.
|
||||
"sunday": time.Sunday,
|
||||
"monday": time.Monday,
|
||||
"tuesday": time.Tuesday,
|
||||
"wednesday": time.Wednesday,
|
||||
"thursday": time.Thursday,
|
||||
"friday": time.Friday,
|
||||
"saturday": time.Saturday,
|
||||
|
||||
// shortDayNames
|
||||
"Sun": time.Sunday,
|
||||
"Mon": time.Monday,
|
||||
"Tue": time.Tuesday,
|
||||
"Wed": time.Wednesday,
|
||||
"Thu": time.Thursday,
|
||||
"Fri": time.Friday,
|
||||
"Sat": time.Saturday,
|
||||
// shortDayNames: lowercase.
|
||||
"sun": time.Sunday,
|
||||
"mon": time.Monday,
|
||||
"tue": time.Tuesday,
|
||||
"wed": time.Wednesday,
|
||||
"thu": time.Thursday,
|
||||
"fri": time.Friday,
|
||||
"sat": time.Saturday,
|
||||
}
|
||||
|
||||
func strParseWeekday(value string) (time.Weekday, error) {
|
||||
result, ok := dayNames[value]
|
||||
if !ok {
|
||||
return 0, ErrNotFound
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func strParseTime(layout, value string) (time.Time, error) {
|
||||
return time.Parse(layout, value)
|
||||
}
|
||||
|
||||
const (
|
||||
simpleDateLayout1 = "2006/01/02"
|
||||
simpleDateLayout2 = "2006-01-02"
|
||||
)
|
||||
|
||||
func strParseSimpleDate(value string) (time.Time, error) {
|
||||
t1, err := strParseTime(simpleDateLayout1, value)
|
||||
if err != nil {
|
||||
t2, err2 := strParseTime(simpleDateLayout2, value)
|
||||
if err2 != nil {
|
||||
return time.Time{}, fmt.Errorf("%s, %w", err.Error(), err2)
|
||||
}
|
||||
|
||||
return t2, nil
|
||||
}
|
||||
|
||||
return t1, nil
|
||||
}
|
||||
Reference in New Issue
Block a user