summaryrefslogtreecommitdiffstats
path: root/third_party/rust/arrayref/examples
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/arrayref/examples')
-rw-r--r--third_party/rust/arrayref/examples/array_refs.rs13
-rw-r--r--third_party/rust/arrayref/examples/array_refs_with_const.rs18
-rw-r--r--third_party/rust/arrayref/examples/simple-case.rs15
3 files changed, 46 insertions, 0 deletions
diff --git a/third_party/rust/arrayref/examples/array_refs.rs b/third_party/rust/arrayref/examples/array_refs.rs
new file mode 100644
index 0000000000..a3ff081a11
--- /dev/null
+++ b/third_party/rust/arrayref/examples/array_refs.rs
@@ -0,0 +1,13 @@
+#[macro_use]
+extern crate arrayref;
+
+fn main() {
+ let x = [0,1,2,3,4,5,6,7,8,9];
+ let (a,b,c) = array_refs!(&x, 2, 3, 5);
+ assert_eq!(2, a.len());
+ assert_eq!(3, b.len());
+ assert_eq!(5, c.len());
+ assert_eq!(*a, [0,1]);
+ assert_eq!(*b, [2,3,4]);
+ assert_eq!(*c, [5,6,7,8,9]);
+}
diff --git a/third_party/rust/arrayref/examples/array_refs_with_const.rs b/third_party/rust/arrayref/examples/array_refs_with_const.rs
new file mode 100644
index 0000000000..734ef46270
--- /dev/null
+++ b/third_party/rust/arrayref/examples/array_refs_with_const.rs
@@ -0,0 +1,18 @@
+#[macro_use]
+extern crate arrayref;
+
+const SIZE: usize = 10;
+const SIZE_A: usize = 2;
+const SIZE_B: usize = 3;
+const SIZE_C: usize = 5;
+
+fn main() {
+ let x: [u8; SIZE] = [0,1,2,3,4,5,6,7,8,9];
+ let (a,b,c) = array_refs!(&x, SIZE_A, SIZE_B, SIZE_C);
+ assert_eq!(SIZE_A, a.len());
+ assert_eq!(SIZE_B, b.len());
+ assert_eq!(SIZE_C, c.len());
+ assert_eq!(*a, [0,1]);
+ assert_eq!(*b, [2,3,4]);
+ assert_eq!(*c, [5,6,7,8,9]);
+}
diff --git a/third_party/rust/arrayref/examples/simple-case.rs b/third_party/rust/arrayref/examples/simple-case.rs
new file mode 100644
index 0000000000..434e253ae6
--- /dev/null
+++ b/third_party/rust/arrayref/examples/simple-case.rs
@@ -0,0 +1,15 @@
+#[macro_use]
+extern crate arrayref;
+
+fn add_three(a: &[u8; 3]) -> u8 {
+ a[0] + a[1] + a[2]
+}
+
+fn main() {
+ let mut x = [0u8; 30];
+ x[20] = 1;
+ x[21] = 4;
+ x[24] = 3;
+ x[0] = add_three(array_mut_ref![x,20,3]);
+ assert_eq!(x[0], 8);
+}