module std::core::array; macro tconcat(arr1, arr2) { var $Type = $typeof(arr1[0]); $Type[] result = array::talloc($Type, arr1.len + arr2.len); if (arr1.len > 0) { mem::copy(result.ptr, &arr1[0], arr1.len * $Type.sizeof, $Type.alignof, $Type.alignof); } if (arr2.len > 0) { mem::copy(&result[arr1.len], &arr2[0], arr2.len * $Type.sizeof, $Type.alignof, $Type.alignof); } return result; } macro index_of(array, element) { foreach (i, &e : array) { if (*e == element) return i; } return SearchResult.MISSING!; } macro concat(arr1, arr2) { var $Type = $typeof(arr1[0]); $Type[] result = array::alloc($Type, arr1.len + arr2.len); if (arr1.len > 0) { mem::copy(result.ptr, &arr1[0], arr1.len * $Type.sizeof, $Type.alignof, $Type.alignof); } if (arr2.len > 0) { mem::copy(&result[arr1.len], &arr2[0], arr2.len * $Type.sizeof, $Type.alignof, $Type.alignof); } return result; }