mirror of
https://git.mirrors.martin98.com/https://github.com/ceph/ceph-csi.git
synced 2025-08-03 06:50:37 +08:00
![dependabot[bot]](/assets/img/avatar_default.png)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.40.55 to 1.41.0. - [Release notes](https://github.com/aws/aws-sdk-go/releases) - [Changelog](https://github.com/aws/aws-sdk-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-go/compare/v1.40.55...v1.41.0) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
55 lines
1.2 KiB
Go
55 lines
1.2 KiB
Go
package rest
|
|
|
|
import "reflect"
|
|
|
|
// PayloadMember returns the payload field member of i if there is one, or nil.
|
|
func PayloadMember(i interface{}) interface{} {
|
|
if i == nil {
|
|
return nil
|
|
}
|
|
|
|
v := reflect.ValueOf(i).Elem()
|
|
if !v.IsValid() {
|
|
return nil
|
|
}
|
|
if field, ok := v.Type().FieldByName("_"); ok {
|
|
if payloadName := field.Tag.Get("payload"); payloadName != "" {
|
|
field, _ := v.Type().FieldByName(payloadName)
|
|
if field.Tag.Get("type") != "structure" {
|
|
return nil
|
|
}
|
|
|
|
payload := v.FieldByName(payloadName)
|
|
if payload.IsValid() || (payload.Kind() == reflect.Ptr && !payload.IsNil()) {
|
|
return payload.Interface()
|
|
}
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
const nopayloadPayloadType = "nopayload"
|
|
|
|
// PayloadType returns the type of a payload field member of i if there is one,
|
|
// or "".
|
|
func PayloadType(i interface{}) string {
|
|
v := reflect.Indirect(reflect.ValueOf(i))
|
|
if !v.IsValid() {
|
|
return ""
|
|
}
|
|
|
|
if field, ok := v.Type().FieldByName("_"); ok {
|
|
if noPayload := field.Tag.Get(nopayloadPayloadType); noPayload != "" {
|
|
return nopayloadPayloadType
|
|
}
|
|
|
|
if payloadName := field.Tag.Get("payload"); payloadName != "" {
|
|
if member, ok := v.Type().FieldByName(payloadName); ok {
|
|
return member.Tag.Get("type")
|
|
}
|
|
}
|
|
}
|
|
|
|
return ""
|
|
}
|