func (c *Client) Clone(opts ...Option) *Client {
	tf := c.conn.tagFormat
	conf := &config{
		Client: clientConfig{
			Rate:   c.rate,
			Prefix: c.prefix,
			Tags:   splitTags(tf, c.tags),
		},
	}
	for _, o := range opts {
		o(conf)
	}

	clone := &Client{
		conn:   c.conn,
		muted:  c.muted || conf.Client.Muted,
		rate:   conf.Client.Rate,
		prefix: conf.Client.Prefix,
		tags:   joinTags(tf, conf.Client.Tags),
	}
	clone.conn = c.conn
	return clone
}
func (c *Client) Clone(opts ...Option) *Client {
	tf := c.conn.tagFormat
	conf := &config{
		Client: clientConfig{
			Rate:   c.rate,
			Prefix: c.prefix,
			Tags:   splitTags(tf, c.tags),
		},
	}
	for _, o := range opts {
		o(conf)
	}

	clone := &Client{
		conn:   c.conn,
		muted:  c.muted || conf.Client.Muted,
		rate:   conf.Client.Rate,
		prefix: conf.Client.Prefix,
		tags:   joinTags(tf, conf.Client.Tags),
	}
	clone.conn = c.conn
	return clone
}
func ( c * Client ) Clone ( opts ... Option ) * Client { tf := c . conn . tagFormat conf := & config { Client : clientConfig { Rate : c . rate , Prefix : c . prefix , Tags : splitTags ( tf , c . tags ) , } , } for _ , o := range opts { o ( conf ) } clone := & Client { conn : c . conn , muted : c . muted || conf . Client . Muted , rate : conf . Client . Rate , prefix : conf . Client . Prefix , tags : joinTags ( tf , conf . Client . Tags ) , } clone . conn = c . conn return clone }
// Clone returns a clone of the Client. The cloned Client inherits its
// configuration from its parent.
//
// All cloned Clients share the same connection, so cloning a Client is a cheap
// operation.
Clone returns a clone of the Client . The cloned Client inherits its configuration from its parent . All cloned Clients share the same connection so cloning a Client is a cheap operation .