code: func (d DNSError) Timeout() bool {
  	if netErr, ok := d.underlying.(*net.OpError); ok {
  		return netErr.Timeout()
  	} else if d.underlying == context.Canceled || d.underlying == context.DeadlineExceeded {
  		return true
  	}
  	return false
  }
docs: // Timeout returns true if the underlying error was a timeout