| // File generated by specialize. Do not edit. |
| |
| // Licensed to the Apache Software Foundation (ASF) under one or more |
| // contributor license agreements. See the NOTICE file distributed with |
| // this work for additional information regarding copyright ownership. |
| // The ASF licenses this file to You under the Apache License, Version 2.0 |
| // (the "License"); you may not use this file except in compliance with |
| // the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| // Code generated from fn_arity.tmpl. DO NOT EDIT. |
| |
| package exec |
| |
| import ( |
| "fmt" |
| |
| "github.com/apache/beam/sdks/go/pkg/beam/core/typex" |
| "github.com/apache/beam/sdks/go/pkg/beam/core/util/reflectx" |
| ) |
| |
| // initCall initializes the caller for the invoker, avoiding slice allocation for the |
| // return values, and uses a cached return processor to handle the different possible |
| // return cases. |
| func (n *invoker) initCall() { |
| switch fn := n.fn.Fn.(type) { |
| |
| case reflectx.Func0x0: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| fn.Call0x0() |
| return nil, nil |
| } |
| |
| case reflectx.Func1x0: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| fn.Call1x0(n.args[0]) |
| return nil, nil |
| } |
| |
| case reflectx.Func2x0: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| fn.Call2x0(n.args[0], n.args[1]) |
| return nil, nil |
| } |
| |
| case reflectx.Func3x0: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| fn.Call3x0(n.args[0], n.args[1], n.args[2]) |
| return nil, nil |
| } |
| |
| case reflectx.Func4x0: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| fn.Call4x0(n.args[0], n.args[1], n.args[2], n.args[3]) |
| return nil, nil |
| } |
| |
| case reflectx.Func5x0: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| fn.Call5x0(n.args[0], n.args[1], n.args[2], n.args[3], n.args[4]) |
| return nil, nil |
| } |
| |
| case reflectx.Func6x0: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| fn.Call6x0(n.args[0], n.args[1], n.args[2], n.args[3], n.args[4], n.args[5]) |
| return nil, nil |
| } |
| |
| case reflectx.Func7x0: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| fn.Call7x0(n.args[0], n.args[1], n.args[2], n.args[3], n.args[4], n.args[5], n.args[6]) |
| return nil, nil |
| } |
| |
| case reflectx.Func0x1: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0 := fn.Call0x1() |
| return n.ret1(ws, ts, r0) |
| } |
| |
| case reflectx.Func1x1: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0 := fn.Call1x1(n.args[0]) |
| return n.ret1(ws, ts, r0) |
| } |
| |
| case reflectx.Func2x1: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0 := fn.Call2x1(n.args[0], n.args[1]) |
| return n.ret1(ws, ts, r0) |
| } |
| |
| case reflectx.Func3x1: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0 := fn.Call3x1(n.args[0], n.args[1], n.args[2]) |
| return n.ret1(ws, ts, r0) |
| } |
| |
| case reflectx.Func4x1: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0 := fn.Call4x1(n.args[0], n.args[1], n.args[2], n.args[3]) |
| return n.ret1(ws, ts, r0) |
| } |
| |
| case reflectx.Func5x1: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0 := fn.Call5x1(n.args[0], n.args[1], n.args[2], n.args[3], n.args[4]) |
| return n.ret1(ws, ts, r0) |
| } |
| |
| case reflectx.Func6x1: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0 := fn.Call6x1(n.args[0], n.args[1], n.args[2], n.args[3], n.args[4], n.args[5]) |
| return n.ret1(ws, ts, r0) |
| } |
| |
| case reflectx.Func7x1: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0 := fn.Call7x1(n.args[0], n.args[1], n.args[2], n.args[3], n.args[4], n.args[5], n.args[6]) |
| return n.ret1(ws, ts, r0) |
| } |
| |
| case reflectx.Func0x2: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0, r1 := fn.Call0x2() |
| return n.ret2(ws, ts, r0, r1) |
| } |
| |
| case reflectx.Func1x2: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0, r1 := fn.Call1x2(n.args[0]) |
| return n.ret2(ws, ts, r0, r1) |
| } |
| |
| case reflectx.Func2x2: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0, r1 := fn.Call2x2(n.args[0], n.args[1]) |
| return n.ret2(ws, ts, r0, r1) |
| } |
| |
| case reflectx.Func3x2: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0, r1 := fn.Call3x2(n.args[0], n.args[1], n.args[2]) |
| return n.ret2(ws, ts, r0, r1) |
| } |
| |
| case reflectx.Func4x2: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0, r1 := fn.Call4x2(n.args[0], n.args[1], n.args[2], n.args[3]) |
| return n.ret2(ws, ts, r0, r1) |
| } |
| |
| case reflectx.Func5x2: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0, r1 := fn.Call5x2(n.args[0], n.args[1], n.args[2], n.args[3], n.args[4]) |
| return n.ret2(ws, ts, r0, r1) |
| } |
| |
| case reflectx.Func6x2: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0, r1 := fn.Call6x2(n.args[0], n.args[1], n.args[2], n.args[3], n.args[4], n.args[5]) |
| return n.ret2(ws, ts, r0, r1) |
| } |
| |
| case reflectx.Func7x2: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0, r1 := fn.Call7x2(n.args[0], n.args[1], n.args[2], n.args[3], n.args[4], n.args[5], n.args[6]) |
| return n.ret2(ws, ts, r0, r1) |
| } |
| |
| case reflectx.Func0x3: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0, r1, r2 := fn.Call0x3() |
| return n.ret3(ws, ts, r0, r1, r2) |
| } |
| |
| case reflectx.Func1x3: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0, r1, r2 := fn.Call1x3(n.args[0]) |
| return n.ret3(ws, ts, r0, r1, r2) |
| } |
| |
| case reflectx.Func2x3: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0, r1, r2 := fn.Call2x3(n.args[0], n.args[1]) |
| return n.ret3(ws, ts, r0, r1, r2) |
| } |
| |
| case reflectx.Func3x3: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0, r1, r2 := fn.Call3x3(n.args[0], n.args[1], n.args[2]) |
| return n.ret3(ws, ts, r0, r1, r2) |
| } |
| |
| case reflectx.Func4x3: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0, r1, r2 := fn.Call4x3(n.args[0], n.args[1], n.args[2], n.args[3]) |
| return n.ret3(ws, ts, r0, r1, r2) |
| } |
| |
| case reflectx.Func5x3: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0, r1, r2 := fn.Call5x3(n.args[0], n.args[1], n.args[2], n.args[3], n.args[4]) |
| return n.ret3(ws, ts, r0, r1, r2) |
| } |
| |
| case reflectx.Func6x3: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0, r1, r2 := fn.Call6x3(n.args[0], n.args[1], n.args[2], n.args[3], n.args[4], n.args[5]) |
| return n.ret3(ws, ts, r0, r1, r2) |
| } |
| |
| case reflectx.Func7x3: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| r0, r1, r2 := fn.Call7x3(n.args[0], n.args[1], n.args[2], n.args[3], n.args[4], n.args[5], n.args[6]) |
| return n.ret3(ws, ts, r0, r1, r2) |
| } |
| |
| default: |
| n.call = func(ws []typex.Window, ts typex.EventTime) (*FullValue, error) { |
| ret := n.fn.Fn.Call(n.args) |
| if n.outErrIdx >= 0 && ret[n.outErrIdx] != nil { |
| return nil, ret[n.outErrIdx].(error) |
| } |
| |
| // (5) Return direct output, if any. Input timestamp and windows are implicitly |
| // propagated. |
| switch len(ret) { |
| case 0: |
| return nil, nil |
| case 1: |
| return n.ret1(ws, ts, ret[0]) |
| case 2: |
| return n.ret2(ws, ts, ret[0], ret[1]) |
| case 3: |
| return n.ret3(ws, ts, ret[0], ret[1], ret[2]) |
| case 4: |
| return n.ret4(ws, ts, ret[0], ret[1], ret[2], ret[3]) |
| } |
| panic(fmt.Sprintf("invoker: %v has > 4 return values, which is not permitted", n.fn.Fn.Name())) |
| } |
| } |
| } |