blob: ce3d3cf066919ab5dd9be1cccf8d6256fdb2e865 [file] [log] [blame]
// 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.
package testpipeline
import "github.com/apache/beam/sdks/go/pkg/beam"
//go:generate go install github.com/apache/beam/sdks/go/cmd/starcgen
//go:generate starcgen --package=testpipeline --identifiers=VFn,KvFn,KvEmitFn,SCombine
//go:generate go fmt
// VFn is a do nothing example function with a k and v.
func VFn(v int) (string, int) {
return "key", v
}
// KvFn is a do nothing example function with a k and v.
func KvFn(k string, v int) (string, int) {
return k, v
}
// KvEmitFn is a do nothing example function with a k and v that uses an emit
// instead of a return.
func KvEmitFn(k string, v int, emit func(string, int)) {
emit(k, v)
}
// SCombine is a Do Nothing structural doFn to ensure that generating things for
// combinefn structs works.
type SCombine struct{}
// MergeAccumulators lifecycle method.
func (s *SCombine) MergeAccumulators(a, b int) int { return a + b }
// otherMethod should never have a shim generated for it.
// Unfortunately, outside of a manual inspection, or parsing of the
// generated file, this is difficult to test.
func (s *SCombine) otherMethod(v beam.V) beam.V {
return v
}