func (cl *Client) LeaveGroup() {
	cl.consumer.unset()
}
LeaveGroup leaves a group if in one. Calling the client's Close function
also leaves a group, so this is only necessary to call if you plan to leave
the group and continue using the client.

If you have overridden the default revoke, you must manually commit offsets
before leaving the group.

If you have configured the group with an InstanceID, this does not leave the
group. With instance IDs, it is expected that clients will restart and
re-use the same instance ID. To leave a group using an instance ID, you must
manually issue a kmsg.LeaveGroupRequest or use an external tool (kafka
scripts or kcl).
package kgo
import (
	"bytes"
	"context"
	"fmt"
	"sort"
	"strings"
	"sync"
	"time"
	"github.com/twmb/franz-go/pkg/kerr"
	"github.com/twmb/franz-go/pkg/kmsg"
)
type groupConsumer struct {
	c   *consumer  
	cl  *Client    
	cfg *cfg
	ctx        context.Context
	cancel     func()
	manageDone chan struct{}  
	cooperative bool  
	tps *topicsPartitions
	reSeen map[string]bool  
	syncCommitMu sync.RWMutex
	rejoinCh chan string  
	heartbeatForceCh chan func(error)
	lastAssigned map[string][]int32  
	nowAssigned  map[string][]int32  
	fetching map[string]map[int32]struct{}
	leader atomicBool
	offsetsAddedToTxn bool
	mu sync.Mutex
	using map[string]int  
	uncommitted uncommitted
	memberID   string
	generation int32
	commitCancel func()
	commitDone   chan struct{}
	blockAuto bool
	dying bool  
}