in funcframework/framework.go [279:292]
func validateTypedFunction(fn interface{}) (*reflect.Value, error) {
ft := reflect.TypeOf(fn)
if ft.NumIn() != 1 {
return nil, fmt.Errorf("expected function to have one parameters, found %d", ft.NumIn())
}
if ft.NumOut() > 2 {
return nil, fmt.Errorf("expected function to have maximum two return values")
}
if ft.NumOut() > 0 && !ft.Out(ft.NumOut()-1).AssignableTo(errorType) {
return nil, fmt.Errorf("expected last return type to be of error")
}
var inputType = reflect.New(ft.In(0))
return &inputType, nil
}