summaryrefslogtreecommitdiff
path: root/src/slice.hpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2019-11-02 11:07:23 +0800
committerJohn Hodge <tpg@ucc.asn.au>2019-11-02 11:07:23 +0800
commit1d02810c3cf908bfba7c15ae50eb5314603b9d85 (patch)
tree79dd5e4ef4c3ff79db0912ba546f08e61a7a8c10 /src/slice.hpp
parent7111acba04d72fe4084b1a1f3209ff83efe8614d (diff)
parent8b53b38f40625ab0510f541d69db3f83332a830a (diff)
downloadmrust-1d02810c3cf908bfba7c15ae50eb5314603b9d85.tar.gz
Merge branch 'nightly-1.29' - #95 Working support for rustc 1.29
Diffstat (limited to 'src/slice.hpp')
-rw-r--r--src/slice.hpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/slice.hpp b/src/slice.hpp
new file mode 100644
index 00000000..2011e8c2
--- /dev/null
+++ b/src/slice.hpp
@@ -0,0 +1,35 @@
+#pragma once
+
+#include <stddef.h>
+
+template<typename T>
+class slice
+{
+ T* ptr;
+ size_t len;
+public:
+ slice(T* ptr, size_t len): ptr(ptr), len(len) {}
+
+ T* begin() { return ptr; }
+ T* end() { return ptr + len; }
+ const T* begin() const { return ptr; }
+ const T* end() const { return ptr + len; }
+};
+
+namespace std {
+ template<typename T>
+ ostream& operator<<(ostream& os, const slice<T>& x) {
+ os << "[";
+ bool first = true;
+ for(const auto& e : x)
+ {
+ if(!first)
+ os << ",";
+ first = false;
+ os << e;
+ }
+ os << "]";
+ return os;
+ }
+}
+