func (l *List2D[T]) Copy() *List2D[T] {
	l2 := &List2D[T]{
		data:   make([]T, len(l.data)),
		width:  l.width,
		height: l.height,
	}
	copy(l2.data, l.data)
	return l2
}
// Copy returns a copy of the list
Copy returns a copy of the list
// Copy returns a copy of the list
func (l *List2D[T]) Copy() *List2D[T] {
	l2 := &List2D[T]{
		data:   make([]T, len(l.data)),
		width:  l.width,
		height: l.height,
	}
	copy(l2.data, l.data)
	return l2
}
func ( l * List2D [ T ] ) Copy ( ) * List2D [ T ] { l2 := & List2D [ T ] { data : make ( [ ] T , len ( l . data ) ) , width : l . width , height : l . height , } copy ( l2 . data , l . data ) return l2 }
Copy returns a copy of the list
Copy returns a copy of the list