summaryrefslogtreecommitdiffstats
path: root/vespajlib/src/main/java/com/yahoo/slime/SlimeStream.java
diff options
context:
space:
mode:
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/slime/SlimeStream.java')
-rw-r--r--vespajlib/src/main/java/com/yahoo/slime/SlimeStream.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/slime/SlimeStream.java b/vespajlib/src/main/java/com/yahoo/slime/SlimeStream.java
new file mode 100644
index 00000000000..a6008294a72
--- /dev/null
+++ b/vespajlib/src/main/java/com/yahoo/slime/SlimeStream.java
@@ -0,0 +1,21 @@
+package com.yahoo.slime;
+
+import java.util.function.Function;
+import java.util.stream.IntStream;
+import java.util.stream.Stream;
+
+public final class SlimeStream {
+ private SlimeStream() {}
+
+ /**
+ * Create a stream from a Slime {@link Inspector} pointing to an array.
+ * @param array the array inspector
+ * @param mapper the function mapping to Stream elements
+ * @return A Stream of array elements
+ */
+ public static <T> Stream<T> fromArray(Inspector array, Function<Inspector, T> mapper) {
+ return IntStream.range(0, array.entries())
+ .mapToObj(array::entry)
+ .map(mapper);
+ }
+}