aboutsummaryrefslogtreecommitdiff
path: root/core/slice
diff options
context:
space:
mode:
authorJeroen van Rijn <Kelimion@users.noreply.github.com>2024-05-09 17:47:19 +0200
committerJeroen van Rijn <Kelimion@users.noreply.github.com>2024-05-09 17:47:19 +0200
commit858c78b8448dc76025fa5e3dc0f9e0bb6b63834e (patch)
tree6c8e60c8f8415921d163abec5e416713207a0eaa /core/slice
parenta61d8daec1eb8f5f22a6190d1b51e784faed8bdf (diff)
Pass new -vet-style check.
Diffstat (limited to 'core/slice')
-rw-r--r--core/slice/slice.odin19
1 files changed, 12 insertions, 7 deletions
diff --git a/core/slice/slice.odin b/core/slice/slice.odin
index 6cb844b40..606feb22e 100644
--- a/core/slice/slice.odin
+++ b/core/slice/slice.odin
@@ -706,7 +706,7 @@ enumerated_array :: proc(ptr: ^$T) -> []intrinsics.type_elem_type(T)
// e.g.:
// bs := slice.enum_slice_to_bitset(my_flag_slice, rl.ConfigFlags)
@(require_results)
-enum_slice_to_bitset :: proc(enums: []$E, $T: typeid/bit_set[E]) -> (bits: T) where intrinsics.type_is_enum(E) && intrinsics.type_bit_set_elem_type(T) == E {
+enum_slice_to_bitset :: proc(enums: []$E, $T: typeid/bit_set[E]) -> (bits: T) where intrinsics.type_is_enum(E), intrinsics.type_bit_set_elem_type(T) == E {
for v in enums {
bits |= {v}
}
@@ -717,7 +717,7 @@ enum_slice_to_bitset :: proc(enums: []$E, $T: typeid/bit_set[E]) -> (bits: T) wh
// e.g.:
// sl := slice.bitset_to_enum_slice(flag_buf[:], bs)
@(require_results)
-bitset_to_enum_slice_with_buffer :: proc(buf: []$E, bs: $T) -> (slice: []E) where intrinsics.type_is_enum(E) && intrinsics.type_bit_set_elem_type(T) == E {
+bitset_to_enum_slice_with_buffer :: proc(buf: []$E, bs: $T) -> (slice: []E) where intrinsics.type_is_enum(E), intrinsics.type_bit_set_elem_type(T) == E {
count := 0
for v in bs {
buf[count] = v
@@ -730,14 +730,19 @@ bitset_to_enum_slice_with_buffer :: proc(buf: []$E, bs: $T) -> (slice: []E) wher
// e.g.:
// sl := slice.bitset_to_enum_slice(bs)
@(require_results)
-bitset_to_enum_slice_with_make :: proc(buf: []$E, bs: $T) -> (slice: []E) where intrinsics.type_is_enum(E) && intrinsics.type_bit_set_elem_type(T) == E {
-
+bitset_to_enum_slice_with_make :: proc(bs: $T, $E: typeid) -> (slice: []E) where intrinsics.type_is_enum(E), intrinsics.type_bit_set_elem_type(T) == E {
count := 0
- for v in bs {
- buf[count] = v
+ for _ in bs {
count += 1
}
- return buf[:count]
+ slice = make([]E, count)
+
+ i := 0
+ for v in bs {
+ slice[i] = v
+ i += 1
+ }
+ return
}
bitset_to_enum_slice :: proc{bitset_to_enum_slice_with_make, bitset_to_enum_slice_with_buffer} \ No newline at end of file