Make for in logic a bit more generic

This commit is contained in:
gingerBill
2021-03-24 12:31:05 +00:00
parent 0e3ecc350a
commit d969d0b264
2 changed files with 37 additions and 32 deletions

View File

@@ -102,13 +102,20 @@ Slice<T> slice_clone_from_array(gbAllocator const &allocator, Array<T> const &a)
}
template <typename T>
void slice_copy(Slice<T> *slice, Slice<T> const &data) {
isize n = gb_min(slice->count, data.count);
gb_memmove(slice->data, data.data, gb_size_of(T)*n);
}
template <typename T>
void slice_copy(Slice<T> *slice, Slice<T> const &data, isize offset) {
gb_memmove(slice->data+offset, data.data, gb_size_of(T)*data.count);
isize n = gb_clamp(slice->count-offset, 0, data.count);
gb_memmove(slice->data+offset, data.data, gb_size_of(T)*n);
}
template <typename T>
void slice_copy(Slice<T> *slice, Slice<T> const &data, isize offset, isize count) {
gb_memmove(slice->data+offset, data.data, gb_size_of(T)*gb_min(data.count, count));
isize n = gb_clamp(slice->count-offset, 0, gb_min(data.count, count));
gb_memmove(slice->data+offset, data.data, gb_size_of(T)*n);
}