got logging structs working (theoretically) and used it
diff --git a/aos/common/logging/queue_logging-tmpl.h b/aos/common/logging/queue_logging-tmpl.h
new file mode 100644
index 0000000..e0a89e4
--- /dev/null
+++ b/aos/common/logging/queue_logging-tmpl.h
@@ -0,0 +1,19 @@
+#include "aos/common/logging/logging_impl.h"
+
+#include <functional>
+
+namespace aos {
+namespace logging {
+
+template <class T>
+void DoLogStruct(log_level level, const ::std::string &message,
+                 const T &structure) {
+  LogImplementation::DoLogStruct(level, message, T::Size(), T::GetType(),
+                                 [&structure](char * buffer)->size_t{
+    return structure.Serialize(buffer);
+  },
+                                 1);
+}
+
+}  // namespace logging
+}  // namespace aos