in dax/internal/client/response.go [89:133]
func decodeEndpoint(reader *cbor.Reader) (serviceEndpoint, error) {
se := serviceEndpoint{}
err := consumeMap(reader, func(key int, r *cbor.Reader) error {
var err error
switch key {
case keyNodeId:
if se.nodeId, err = r.ReadInt64(); err != nil {
return err
}
case keyHostname:
if se.hostname, err = r.ReadString(); err != nil {
return err
}
case keyAddress:
if se.address, err = r.ReadBytes(); err != nil {
return err
}
case keyPort:
if se.port, err = r.ReadInt(); err != nil {
return err
}
case keyRole:
if role, err := r.ReadInt(); err != nil {
return err
} else {
if role != roleLeader && role != roleReplica {
return &smithy.SerializationError{Err: fmt.Errorf("unknown role %d", role)}
}
se.role = role
}
case keyAvailablityZone:
if se.availabilityZone, err = r.ReadString(); err != nil {
return err
}
case keyLeaderSessionId:
if se.leaderSessionId, err = r.ReadInt64(); err != nil {
return err
}
default:
// inorder to ensure backward compatibility on future field additions, new/unknown fields are ignored
}
return nil
})
return se, err
}