code: func (c *EtcdLockClient) Get() (*Semaphore, error) {
  	resp, err := c.keyapi.Get(context.Background(), c.keypath, nil)
  	if err != nil {
  		return nil, err
  	}
  
  	sem := &Semaphore{}
  	err = json.Unmarshal([]byte(resp.Node.Value), sem)
  	if err != nil {
  		return nil, err
  	}
  
  	sem.Index = resp.Node.ModifiedIndex
  
  	return sem, nil
  }
docs: // Get fetches the Semaphore from etcd.