mirror of
https://github.com/adnanh/webhook.git
synced 2025-05-31 17:52:28 +00:00
parent
3f4520da67
commit
3463804a7c
42 changed files with 5174 additions and 4 deletions
54
vendor/github.com/clbanning/mxj/struct.go
generated
vendored
Normal file
54
vendor/github.com/clbanning/mxj/struct.go
generated
vendored
Normal file
|
@ -0,0 +1,54 @@
|
|||
// Copyright 2012-2017 Charles Banning. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file
|
||||
|
||||
package mxj
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"reflect"
|
||||
|
||||
// "github.com/fatih/structs"
|
||||
)
|
||||
|
||||
// Create a new Map value from a structure. Error returned if argument is not a structure.
|
||||
// Only public structure fields are decoded in the Map value. See github.com/fatih/structs#Map
|
||||
// for handling of "structs" tags.
|
||||
|
||||
// DEPRECATED - import github.com/fatih/structs and cast result of structs.Map to mxj.Map.
|
||||
// import "github.com/fatih/structs"
|
||||
// ...
|
||||
// sm, err := structs.Map(<some struct>)
|
||||
// if err != nil {
|
||||
// // handle error
|
||||
// }
|
||||
// m := mxj.Map(sm)
|
||||
// Alernatively uncomment the old source and import in struct.go.
|
||||
func NewMapStruct(structVal interface{}) (Map, error) {
|
||||
return nil, errors.New("deprecated - see package documentation")
|
||||
/*
|
||||
if !structs.IsStruct(structVal) {
|
||||
return nil, errors.New("NewMapStruct() error: argument is not type Struct")
|
||||
}
|
||||
return structs.Map(structVal), nil
|
||||
*/
|
||||
}
|
||||
|
||||
// Marshal a map[string]interface{} into a structure referenced by 'structPtr'. Error returned
|
||||
// if argument is not a pointer or if json.Unmarshal returns an error.
|
||||
// json.Unmarshal structure encoding rules are followed to encode public structure fields.
|
||||
func (mv Map) Struct(structPtr interface{}) error {
|
||||
// should check that we're getting a pointer.
|
||||
if reflect.ValueOf(structPtr).Kind() != reflect.Ptr {
|
||||
return errors.New("mv.Struct() error: argument is not type Ptr")
|
||||
}
|
||||
|
||||
m := map[string]interface{}(mv)
|
||||
j, err := json.Marshal(m)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return json.Unmarshal(j, structPtr)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue