code: func (c *Adaptor) DigitalPin(pin string, dir string) (sysfsPin sysfs.DigitalPinner, err error) {
  	c.mutex.Lock()
  	defer c.mutex.Unlock()
  
  	i, err := c.translatePin(pin)
  
  	if err != nil {
  		return
  	}
  
  	if c.digitalPins[i] == nil {
  		c.digitalPins[i] = sysfs.NewDigitalPin(i)
  		if err = c.digitalPins[i].Export(); err != nil {
  			return
  		}
  	}
  
  	if err = c.digitalPins[i].Direction(dir); err != nil {
  		return
  	}
  
  	return c.digitalPins[i], nil
  }
docs: // DigitalPin returns matched digitalPin for specified values