func normalizeSpaceElem()

in binding-go/client.go [313:331]


func normalizeSpaceElem(obs interface{}) (interface{}, error) {
	if obs == nil {
		return nil, errors.New("unsupported observation: nil")
	}
	switch obs := obs.(type) {
	case float64:
		return int(obs), nil
	case []interface{}:
		if len(obs) == 0 {
			return nil, errors.New("unsupported observation: empty array")
		} else if _, isFloat := obs[0].(float64); isFloat {
			return normalizeOneDimSpace(obs)
		} else {
			return normalizeMultiDimSpace(obs)
		}
	default:
		return nil, fmt.Errorf("unsupported observation: %v", obs)
	}
}