Upgrade from FlatbufferString to FlatbufferSpan

Less copies, and now we can get rid of FlatbufferString

Change-Id: Ic027de4270d7232d0defadc2b193072aa8e4c8e5
diff --git a/y2020/vision/tools/python_code/BUILD b/y2020/vision/tools/python_code/BUILD
index 4ff3397..6223d76 100644
--- a/y2020/vision/tools/python_code/BUILD
+++ b/y2020/vision/tools/python_code/BUILD
@@ -49,6 +49,9 @@
     ],
     target_compatible_with = ["@platforms//os:linux"],
     visibility = ["//visibility:public"],
+    deps = [
+        "@com_google_absl//absl/types:span",
+    ],
 )
 
 py_binary(
@@ -102,6 +105,9 @@
     ],
     target_compatible_with = ["@platforms//os:linux"],
     visibility = ["//visibility:public"],
+    deps = [
+        "@com_google_absl//absl/types:span",
+    ],
 )
 
 cc_test(
diff --git a/y2020/vision/tools/python_code/load_sift_training.py b/y2020/vision/tools/python_code/load_sift_training.py
index 402e468..2dc5cf2 100644
--- a/y2020/vision/tools/python_code/load_sift_training.py
+++ b/y2020/vision/tools/python_code/load_sift_training.py
@@ -219,13 +219,14 @@
     output_prefix = [
         b'#ifndef Y2020_VISION_TOOLS_PYTHON_CODE_TRAINING_DATA_H_',
         b'#define Y2020_VISION_TOOLS_PYTHON_CODE_TRAINING_DATA_H_',
-        b'#include <string_view>',
+        b'#include <stdint.h>',
+        b'#include "absl/types/span.h"',
         b'namespace frc971 {',
         b'namespace vision {',
-        b'inline std::string_view SiftTrainingData() {',
+        b'inline absl::Span<const uint8_t> SiftTrainingData() {',
     ]
     output_suffix = [
-        b'  return std::string_view(kData, sizeof(kData));',
+        b'  return absl::Span<const uint8_t>(reinterpret_cast<const uint8_t *>(kData), sizeof(kData));',
         b'}',
         b'}  // namespace vision',
         b'}  // namespace frc971',