func (c *CounterWithMemo) Max() int {
	c.Lock()
	defer c.Unlock()
	return c.max
}
Max returns maximum value that counter reached
package mocks
import "sync"
type CounterWithMemo struct {
	counter int
	max     int
	min     int
	sync.Mutex
}
func (c *CounterWithMemo) Inc() {
	c.Lock()
	defer c.Unlock()
	c.counter++
	if c.max < c.counter {
		c.max = c.counter
	}
}
func (c *CounterWithMemo) Dec() {
	c.Lock()
	defer c.Unlock()
	c.counter--
	if c.min < c.counter {
		c.min = c.counter
	}
}
func (c *CounterWithMemo) Min() int {
	c.Lock()
	defer c.Unlock()
	return c.min
}