Add LocalTime to interface{} decode support (#567)
Co-authored-by: Thomas Pelletier <thomas@pelletier.codes>
This commit is contained in:
@@ -585,6 +585,8 @@ func (d *decoder) handleValue(value *ast.Node, v reflect.Value) error {
|
||||
return d.unmarshalDateTime(value, v)
|
||||
case ast.LocalDate:
|
||||
return d.unmarshalLocalDate(value, v)
|
||||
case ast.LocalTime:
|
||||
return d.unmarshalLocalTime(value, v)
|
||||
case ast.LocalDateTime:
|
||||
return d.unmarshalLocalDateTime(value, v)
|
||||
case ast.InlineTable:
|
||||
@@ -730,6 +732,20 @@ func (d *decoder) unmarshalLocalDate(value *ast.Node, v reflect.Value) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (d *decoder) unmarshalLocalTime(value *ast.Node, v reflect.Value) error {
|
||||
lt, rest, err := parseLocalTime(value.Data)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if len(rest) > 0 {
|
||||
return newDecodeError(rest, "extra characters at the end of a local time")
|
||||
}
|
||||
|
||||
v.Set(reflect.ValueOf(lt))
|
||||
return nil
|
||||
}
|
||||
|
||||
func (d *decoder) unmarshalLocalDateTime(value *ast.Node, v reflect.Value) error {
|
||||
ldt, rest, err := parseLocalDateTime(value.Data)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user