code: func (s *LogStream) LoadDescriptor(desc *logpb.LogStreamDescriptor) error {
  	if err := desc.Validate(true); err != nil {
  		return fmt.Errorf("invalid descriptor: %v", err)
  	}
  
  	pb, err := proto.Marshal(desc)
  	if err != nil {
  		return fmt.Errorf("failed to marshal descriptor: %v", err)
  	}
  
  	s.Prefix = desc.Prefix
  	s.Name = desc.Name
  	s.ContentType = desc.ContentType
  	s.StreamType = desc.StreamType
  	s.Descriptor = pb
  
  	// We know that the timestamp is valid b/c it's checked in ValidateDescriptor.
  	if ts := desc.Timestamp; ts != nil {
  		s.Timestamp = ds.RoundTime(google.TimeFromProto(ts).UTC())
  	}
  
  	// Note: tag content was validated via ValidateDescriptor.
  	s.Tags = TagMap(desc.Tags)
  	return nil
  }
docs: // LoadDescriptor loads the fields in the log stream descriptor into this
  // LogStream entry. These fields are:
  //   - Prefix
  //   - Name
  //   - ContentType
  //   - StreamType
  //   - Descriptor
  //   - Timestamp
  //   - Tags