code: func (s *DBStore) Get(key string, i interface{}) (err error) {
  	has, err := s.db.Has([]byte(key), nil)
  	if err != nil || !has {
  		return ErrNotFound
  	}
  
  	data, err := s.db.Get([]byte(key), nil)
  	if err == leveldb.ErrNotFound {
  		return ErrNotFound
  	}
  
  	unmarshaler, ok := i.(encoding.BinaryUnmarshaler)
  	if !ok {
  		return json.Unmarshal(data, i)
  	}
  	return unmarshaler.UnmarshalBinary(data)
  }
docs: // Get retrieves a persisted value for a specific key. If there is no results
  // ErrNotFound is returned. The provided parameter should be either a byte slice or
  // a struct that implements the encoding.BinaryUnmarshaler interface