code: func NewBridge(c *Config) (*Bridge, error) {
  	b := &Bridge{}
  
  	if c.URL == "" {
  		return nil, errors.New("missing URL")
  	}
  	b.url = c.URL
  
  	if c.Gatherer == nil {
  		b.g = prometheus.DefaultGatherer
  	} else {
  		b.g = c.Gatherer
  	}
  
  	if c.Logger != nil {
  		b.logger = c.Logger
  	}
  
  	if c.Prefix != "" {
  		b.prefix = c.Prefix
  	}
  
  	var z time.Duration
  	if c.Interval == z {
  		b.interval = defaultInterval
  	} else {
  		b.interval = c.Interval
  	}
  
  	if c.Timeout == z {
  		b.timeout = defaultInterval
  	} else {
  		b.timeout = c.Timeout
  	}
  
  	b.errorHandling = c.ErrorHandling
  	b.lastValue = map[model.Fingerprint]float64{}
  	b.countersAsDetlas = c.CountersAsDelta
  
  	return b, nil
  }
docs: // NewBridge returns a pointer to a new Bridge struct.