code: func (r *Range) Restore(net *net.IPNet, data []byte) error {
  	if !net.IP.Equal(r.net.IP) || net.Mask.String() != r.net.Mask.String() {
  		return ErrMismatchedNetwork
  	}
  	snapshottable, ok := r.alloc.(allocator.Snapshottable)
  	if !ok {
  		return fmt.Errorf("not a snapshottable allocator")
  	}
  	snapshottable.Restore(net.String(), data)
  	return nil
  }
docs: // Restore restores the pool to the previously captured state. ErrMismatchedNetwork
  // is returned if the provided IPNet range doesn't exactly match the previous range.