authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-01-05 16:48:12-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-01-05 17:02:26-07:00
loge21a83dd74822d9d8b272079a2e0e0b01aff60d4
tree28d3eae9393f9a4fbd8d9fb2814a1e12fb59c7c2
parentbfb3e7fcb1d11e0e0ef9ef639d82c226bf332f1f

update rand example


1 files changed, 5 insertions(+), 2 deletions(-)

example/rand/main.zig+5-2
...@@ -32,7 +32,7 @@ struct Rand {...@@ -32,7 +32,7 @@ struct Rand {
32 var bytes_left = r.get_bytes_aligned(buf, count);32 var bytes_left = r.get_bytes_aligned(buf, count);
33 if (bytes_left > 0) {33 if (bytes_left > 0) {
34 var rand_val_array : [u8; #sizeof(u32)];34 var rand_val_array : [u8; #sizeof(u32)];
35 *(rand_val_array.ptr as &u32) = r.get();35 *(rand_val_array.ptr as &u32) = r.get_u32();
36 while (bytes_left > 0) {36 while (bytes_left > 0) {
37 buf[count - bytes_left] = rand_val_array[#sizeof(u32) - bytes_left];37 buf[count - bytes_left] = rand_val_array[#sizeof(u32) - bytes_left];
38 bytes_left -= 1;38 bytes_left -= 1;
...@@ -55,6 +55,9 @@ struct Rand {...@@ -55,6 +55,9 @@ struct Rand {
55 return start + (rand_val % range);55 return start + (rand_val % range);
56 }56 }
57 }57 }
58 // TODO detect simple constant in while loop and no breaks and turn it into unreachable
59 // type. then we can remove this unreachable.
60 unreachable;
58 }61 }
5962
60 fn generate_numbers(r: &Rand) {63 fn generate_numbers(r: &Rand) {
...@@ -77,7 +80,7 @@ struct Rand {...@@ -77,7 +80,7 @@ struct Rand {
77 var bytes_left = count;80 var bytes_left = count;
78 var buf_ptr = buf;81 var buf_ptr = buf;
79 while (bytes_left > 4) {82 while (bytes_left > 4) {
80 *(buf_ptr as &u32) = r.get();83 *(buf_ptr as &u32) = r.get_u32();
81 bytes_left -= #sizeof(u32);84 bytes_left -= #sizeof(u32);
82 buf_ptr += #sizeof(u32);85 buf_ptr += #sizeof(u32);
83 }86 }