code: func list(db keyval.ProtoBroker) {
  	resp, err := db.ListValues(phonebook.EtcdPath())
  	if err != nil {
  		log.Fatal(err)
  	}
  
  	var revision int64
  	fmt.Println("list values:")
  	for {
  		c := &phonebook.Contact{}
  		kv, stop := resp.GetNext()
  		if stop {
  			break
  		}
  		if kv.GetRevision() > revision {
  			revision = kv.GetRevision()
  		}
  		err = kv.GetValue(c)
  		if err != nil {
  			log.Fatal(err)
  		}
  
  		fmt.Printf("\t%s\n\t\t%s\n\t\t%s\n", c.Name, c.Company, c.Phonenumber)
  
  	}
  	fmt.Println("Revision", revision)
  }
docs: // list lists keys with values