code: func GetMACCommandQueueItems(p *redis.Pool, devEUI lorawan.EUI64) ([]MACCommandBlock, error) {
  	var out []MACCommandBlock
  
  	c := p.Get()
  	defer c.Close()
  
  	key := fmt.Sprintf(macCommandQueueTempl, devEUI)
  	values, err := redis.Values(c.Do("LRANGE", key, 0, -1))
  	if err != nil {
  		return nil, errors.Wrap(err, "get mac-command queue items error")
  	}
  
  	for _, value := range values {
  		b, ok := value.([]byte)
  		if !ok {
  			return nil, fmt.Errorf("expecte []byte type, got %T", value)
  		}
  
  		var block MACCommandBlock
  		err = gob.NewDecoder(bytes.NewReader(b)).Decode(&block)
  		if err != nil {
  			return nil, errors.Wrap(err, "gob decode error")
  		}
  
  		out = append(out, block)
  	}
  
  	return out, nil
  }
docs: // GetMACCommandQueueItems returns the mac-command queue items for the
  // given DevEUI.