aboutsummaryrefslogtreecommitdiff
path: root/code
diff options
context:
space:
mode:
Diffstat (limited to 'code')
-rw-r--r--code/demo.odin64
1 files changed, 11 insertions, 53 deletions
diff --git a/code/demo.odin b/code/demo.odin
index 14f9f5b54..c517169b0 100644
--- a/code/demo.odin
+++ b/code/demo.odin
@@ -3,59 +3,17 @@
#import "hash.odin"
#import "mem.odin"
-main :: proc() {
- { // New Standard Library stuff
- s := "Hello"
- fmt.println(s,
- utf8.valid_string(s),
- hash.murmur64(s.data, s.count))
-
- // utf8.odin
- // hash.odin
- // - crc, fnv, fnva, murmur
- // mem.odin
- // - Custom allocators
- // - Helpers
- }
-
- {
- arena: mem.Arena
- mem.init_arena_from_context(^arena, mem.megabytes(16)) // Uses default allocator
- defer mem.free_arena(^arena)
-
- push_allocator mem.arena_allocator(^arena) {
- x := new(int)
- x^ = 1337
-
- fmt.println(x^)
- }
-
- /*
- push_allocator x {
- ...
- }
-
- is equivalent to this:
- {
- prev_allocator := current_context().allocator
- current_context().allocator = x
- defer current_context().allocator = prev_allocator
-
- ...
- }
- */
-
- // You can also "push" a context
-
- c := current_context()
- c.allocator = mem.arena_allocator(^arena)
-
- push_context c {
- x := new(int)
- x^ = 365
+A :: struct { using e: [12]int }
+Vector2 :: raw_union {
+ using _xy: struct #ordered { x, y: f32 }
+ using v: {2}f32
+ e: [2]f32
+}
- fmt.println(x^)
- }
- }
+main :: proc() {
+ v: Vector2
+ v.x = 123
+ v[1] = 321
+ fmt.println(v)
}