code: func (e *Entry) GetLogEntry() (*logpb.LogEntry, error) {
  	if e.le == nil {
  		if e.D == nil {
  			// This can happen with keys-only results.
  			return nil, errors.New("no log entry data")
  		}
  
  		var le logpb.LogEntry
  		if err := proto.Unmarshal(e.D, &le); err != nil {
  			return nil, errors.Annotate(err, "failed to unmarshal").Err()
  		}
  		e.le = &le
  	}
  
  	return e.le, nil
  }
docs: // GetLogEntry returns the unmarshalled LogEntry data.
  //
  // The first time this is called, the LogEntry will be unmarshalled from its
  // underlying data.