FTL: Generalize SmallMap lookup transformer
Bug: 185536303
Test: ftl_test
Change-Id: Idde9d842a4404095e839fbdbfca1ded416d95263
diff --git a/libs/ftl/optional_test.cpp b/libs/ftl/optional_test.cpp
index 6a8c8f9..ede159a 100644
--- a/libs/ftl/optional_test.cpp
+++ b/libs/ftl/optional_test.cpp
@@ -17,6 +17,7 @@
#include <ftl/optional.h>
#include <ftl/static_vector.h>
#include <ftl/string.h>
+#include <ftl/unit.h>
#include <gtest/gtest.h>
#include <functional>
@@ -62,6 +63,13 @@
EXPECT_EQ(out, "abc"s);
}
+ // No return value.
+ {
+ Optional opt = "food"s;
+ EXPECT_EQ(ftl::unit, opt.transform(ftl::unit_fn([](std::string& str) { str.pop_back(); })));
+ EXPECT_EQ(opt, "foo"s);
+ }
+
// Chaining.
EXPECT_EQ(14u, Optional(StaticVector{"upside"s, "down"s})
.transform([](StaticVector<std::string, 3>&& v) {