UDF – need help with wants stream / provides batch

Can someone get me started down the path of a golang UDF with the following Info() that receives a batch and provides a stream?

func (*mirrorHandler) Info() (*agent.InfoResponse, error) {
	info := &agent.InfoResponse{
		Wants:    agent.EdgeType_BATCH,
		Provides: agent.EdgeType_STREAM,
		Options:  map[string]*agent.OptionInfo{},
	}
	return info, nil
}

Could you explain in code how to implement any of the example UDFs in this manner?