diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2024-08-14 20:44:26 +0300 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2024-08-14 20:44:26 +0300 |
| commit | 2023a7b2d9656f80b00de81453348c0a66f200f7 (patch) | |
| tree | 06e4ea293318955cc4cf620428d04f1708c17364 /examples/vec.ct | |
| parent | 1a56a881bc2c37614cfd074e7b986211c6d04809 (diff) | |
| download | ek-2023a7b2d9656f80b00de81453348c0a66f200f7.tar.gz ek-2023a7b2d9656f80b00de81453348c0a66f200f7.zip | |
test cleanup
+ Somewhat poor Git hygiene but I also fixed some bugs while I was at
it.
Diffstat (limited to 'examples/vec.ct')
| -rw-r--r-- | examples/vec.ct | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/examples/vec.ct b/examples/vec.ct deleted file mode 100644 index dee50ca..0000000 --- a/examples/vec.ct +++ /dev/null @@ -1,62 +0,0 @@ -type vectorable { - std; - /* this would be needed for comparisons like find() or something */ - comparable; -} - -type vec {t: vectorable} { - std_vector: void; - len: usize; - buf: 't; -} - -pub define vec(t) { struct (vec{t}) } - -pub init(v: 'vector) -{ - v.len = 0; - v.buf = null; -} - -pub length(v: *vec => usize) { return v.len; } - -pub index(v: *vec, i: usize => '#v.buf) -{ - assert(i < v.len, "index %zu out of bounds\n", i); - return &v.buf[i]; -} - -pub index(v: mut *vec, i: const isize => '#v.buf) -{ - if i < 0 { - assert(-i < v.len, "reverse index %zi out of bounds\n", i); - return &v.buf[v.len + i]; - } - - assert(i < v.len, "index %zi out of bounds\n", i); - return &v.buf[i]; -} - -pub prepend(v: mut 'vec, e: '#v.buf) { insert(v, e, 0); } -pub append(v: mut 'vec, e: '#v.buf) { insert(v, e, v.len); } - -pub preplace(v: mut 'vec, e: '#v.buf) { place(v, e, 0); } -pub applace(v: mut 'vec, e: '#v.buf) { place(v, e, v.len - 1); } - -pub place(v: mut *vec, e: '#v.buf, i: usize) -{ -} - -pub insert(v: mut *vec, e^ '#v.buf, i: usize) -{ -} - -pub deinit(mut v *vec) -{ - for i usize : v { - deinit(v[i]); - v[i] = null; - } - - dealloc(v.buf); -} |
