Remove takeFirst and takeLast from backend

This commit is contained in:
satotake 2021-11-13 06:03:18 +00:00 committed by GitHub
parent 2e073d57ea
commit 9ec2bc7946
10 changed files with 39 additions and 158 deletions

View file

@ -862,33 +862,6 @@ pub fn listSwap(
return newList;
}
pub fn listTakeFirst(
list: RocList,
alignment: u32,
element_width: usize,
take_count: usize,
) callconv(.C) RocList {
if (list.bytes) |source_ptr| {
if (take_count == 0) {
return RocList.empty();
}
const in_len = list.len();
const out_len = std.math.min(take_count, in_len);
const output = RocList.allocate(alignment, out_len, element_width);
const target_ptr = output.bytes orelse unreachable;
@memcpy(target_ptr, source_ptr, out_len * element_width);
utils.decref(list.bytes, in_len * element_width, alignment);
return output;
} else {
return RocList.empty();
}
}
pub fn listSublist(
list: RocList,
alignment: u32,
@ -926,34 +899,6 @@ pub fn listSublist(
return RocList.empty();
}
pub fn listTakeLast(
list: RocList,
alignment: u32,
element_width: usize,
take_count: usize,
dec: Dec,
) callconv(.C) RocList {
if (take_count == 0) {
return RocList.empty();
}
if (list.bytes) |source_ptr| {
const size = list.len();
if (size <= take_count) {
return list;
}
const drop_count = size - take_count;
return listDrop(
list,
alignment,
element_width,
drop_count,
dec,
);
} else {
return RocList.empty();
}
}
pub fn listDrop(
list: RocList,
alignment: u32,

View file

@ -45,8 +45,6 @@ comptime {
exportListFn(list.listReverse, "reverse");
exportListFn(list.listSortWith, "sort_with");
exportListFn(list.listConcat, "concat");
exportListFn(list.listTakeFirst, "take_first");
exportListFn(list.listTakeLast, "take_last");
exportListFn(list.listSublist, "sublist");
exportListFn(list.listDrop, "drop");
exportListFn(list.listDropAt, "drop_at");