Make Logger::logger_start_uuid_ a UUID

Strings are silly now that UUID is more powerful.

Change-Id: Ibec7caf37fb079bfda47869c7ec4c775e2d0f0b3
diff --git a/aos/events/logging/log_writer.cc b/aos/events/logging/log_writer.cc
index e5c996a..6f99c7b 100644
--- a/aos/events/logging/log_writer.cc
+++ b/aos/events/logging/log_writer.cc
@@ -169,7 +169,7 @@
 }
 
 void Logger::StartLogging(std::unique_ptr<LogNamer> log_namer,
-                          std::string_view log_start_uuid) {
+                          std::optional<UUID> log_start_uuid) {
   CHECK(!log_namer_) << ": Already logging";
   log_namer_ = std::move(log_namer);
 
@@ -287,7 +287,7 @@
   node_state_.clear();
 
   log_event_uuid_ = UUID::Zero();
-  log_start_uuid_ = std::string();
+  log_start_uuid_ = std::nullopt;
 
   return std::move(log_namer_);
 }
@@ -509,8 +509,8 @@
       logger_instance_uuid_.PackString(&fbb);
 
   flatbuffers::Offset<flatbuffers::String> log_start_uuid_offset;
-  if (!log_start_uuid_.empty()) {
-    log_start_uuid_offset = fbb.CreateString(log_start_uuid_);
+  if (log_start_uuid_) {
+    log_start_uuid_offset = fbb.CreateString(log_start_uuid_->ToString());
   }
 
   flatbuffers::Offset<flatbuffers::String> config_sha256_offset;
diff --git a/aos/events/logging/log_writer.h b/aos/events/logging/log_writer.h
index 4f85eb6..8e8e3ef 100644
--- a/aos/events/logging/log_writer.h
+++ b/aos/events/logging/log_writer.h
@@ -64,7 +64,7 @@
   }
   std::chrono::nanoseconds polling_period() const { return polling_period_; }
 
-  std::string_view log_start_uuid() const { return log_start_uuid_; }
+  std::optional<UUID> log_start_uuid() const { return log_start_uuid_; }
   UUID logger_instance_uuid() const { return logger_instance_uuid_; }
 
   // The maximum time for a single fetch which returned a message, or 0 if none
@@ -126,7 +126,7 @@
   // multiple nodes. The default (empty string) indicates there isn't one
   // available.
   void StartLogging(std::unique_ptr<LogNamer> log_namer,
-                    std::string_view log_start_uuid = "");
+                    std::optional<UUID> log_start_uuid = std::nullopt);
 
   // Stops logging. Ensures any messages through end_time make it into the log.
   //
@@ -276,7 +276,7 @@
   const UUID logger_instance_uuid_ = UUID::Random();
   std::unique_ptr<LogNamer> log_namer_;
   // Empty indicates there isn't one.
-  std::string log_start_uuid_;
+  std::optional<UUID> log_start_uuid_;
 
   // Name to save in the log file.  Defaults to hostname.
   std::string name_;