func (m *Metric) Copy() *Metric {
	m_ := &Metric{
		Item: m.Item,
		n:    m.n,
	}
	if m.sub[0] != nil {
		m_.sub[0] = m.sub[0].Copy()
	}
	if m.sub[1] != nil {
		m_.sub[1] = m.sub[1].Copy()
	}
	return m_
}
// Copy returns a deep copy of the metric
Copy returns a deep copy of the metric
// Copy returns a deep copy of the metric
func (m *Metric) Copy() *Metric {
	m_ := &Metric{
		Item: m.Item,
		n:    m.n,
	}
	if m.sub[0] != nil {
		m_.sub[0] = m.sub[0].Copy()
	}
	if m.sub[1] != nil {
		m_.sub[1] = m.sub[1].Copy()
	}
	return m_
}
func ( m * Metric ) Copy ( ) * Metric { m_ := & Metric { Item : m . Item , n : m . n , } if m . sub [ 0 ] != nil { m_ . sub [ 0 ] = m . sub [ 0 ] . Copy ( ) } if m . sub [ 1 ] != nil { m_ . sub [ 1 ] = m . sub [ 1 ] . Copy ( ) } return m_ }
Copy returns a deep copy of the metric
Copy returns a deep copy of the metric