Files
wehub-resource-sync e7738de6d2
CI / Deep Native Runtime Cases (1/6) (push) Has been skipped
CI / Native Preflight (push) Failing after 1s
CI / Native Runtime Cases (1/2) (push) Failing after 0s
CI / Native Runtime Cases (2/2) (push) Failing after 1s
CI / Native Metadata Reports (push) Failing after 0s
CI / Native Direct Backend Artifacts (push) Failing after 0s
CI / Native Sanitizer Smoke (push) Failing after 1s
CI / Command Contract Snapshots (push) Failing after 1s
CI / Deep Conformance Suite (push) Has been skipped
CI / Graph Build Perf (push) Failing after 1s
CI / Deep Native Preflight (push) Has been skipped
CI / Deep Native Runtime Cases (2/6) (push) Has been skipped
CI / Deep Native Runtime Cases (3/6) (push) Has been skipped
CI / Conformance Suite (push) Failing after 1s
CI / Workspace Checks (push) Failing after 0s
CI / Deep Native Runtime Cases (5/6) (push) Has been skipped
CI / Deep Native Runtime Cases (6/6) (push) Has been skipped
CI / Deep Native Runtime Cases (4/6) (push) Has been skipped
CI / Deep Graph Build Perf (push) Has been skipped
chore: import upstream snapshot with attribution
2026-07-13 12:29:30 +08:00

299 lines
7.8 KiB
Plaintext

fn __zero_std_mem_copy_items<T: Type>(dst: MutSpan<T>, src: Span<T>) -> usize {
var count: usize = std.mem.len(src)
let capacity: usize = std.mem.len(dst)
if count > capacity {
count = capacity
}
var index: usize = 0
while index < count {
dst[index] = src[index]
index = index + 1
}
return count
}
fn __zero_std_mem_fill_items<T: Type>(dst: MutSpan<T>, value: T) -> usize {
var index: usize = 0
let len: usize = std.mem.len(dst)
while index < len {
dst[index] = value
index = index + 1
}
return len
}
fn __zero_std_mem_contains<T: Type>(items: Span<T>, needle: T) -> Bool {
var index: usize = 0
while index < std.mem.len(items) {
if items[index] == needle {
return true
}
index = index + 1
}
return false
}
fn __zero_std_mem_compare_i32(left: Span<i32>, right: Span<i32>) -> i32 {
var index: usize = 0
let left_len: usize = std.mem.len(left)
let right_len: usize = std.mem.len(right)
while index < left_len && index < right_len {
if left[index] < right[index] {
return -1
}
if left[index] > right[index] {
return 1
}
index = index + 1
}
if left_len < right_len {
return -1
}
if left_len > right_len {
return 1
}
return 0
}
fn __zero_std_mem_compare_u32(left: Span<u32>, right: Span<u32>) -> i32 {
var index: usize = 0
let left_len: usize = std.mem.len(left)
let right_len: usize = std.mem.len(right)
while index < left_len && index < right_len {
if left[index] < right[index] {
return -1
}
if left[index] > right[index] {
return 1
}
index = index + 1
}
if left_len < right_len {
return -1
}
if left_len > right_len {
return 1
}
return 0
}
fn __zero_std_mem_compare_usize(left: Span<usize>, right: Span<usize>) -> i32 {
var index: usize = 0
let left_len: usize = std.mem.len(left)
let right_len: usize = std.mem.len(right)
while index < left_len && index < right_len {
if left[index] < right[index] {
return -1
}
if left[index] > right[index] {
return 1
}
index = index + 1
}
if left_len < right_len {
return -1
}
if left_len > right_len {
return 1
}
return 0
}
fn __zero_std_mem_compare_u8(left: Span<u8>, right: Span<u8>) -> i32 {
var index: usize = 0
let left_len: usize = std.mem.len(left)
let right_len: usize = std.mem.len(right)
while index < left_len && index < right_len {
if left[index] < right[index] {
return -1
}
if left[index] > right[index] {
return 1
}
index = index + 1
}
if left_len < right_len {
return -1
}
if left_len > right_len {
return 1
}
return 0
}
fn __zero_std_mem_compare_bytes(left: Span<u8>, right: Span<u8>) -> i32 {
return __zero_std_mem_compare_u8(left, right)
}
fn __zero_std_mem_starts_with<T: Type>(items: Span<T>, prefix_items: Span<T>) -> Bool {
let prefix_len: usize = std.mem.len(prefix_items)
if prefix_len > std.mem.len(items) {
return false
}
var index: usize = 0
while index < prefix_len {
if items[index] != prefix_items[index] {
return false
}
index = index + 1
}
return true
}
fn __zero_std_mem_ends_with<T: Type>(items: Span<T>, suffix_items: Span<T>) -> Bool {
let suffix_len: usize = std.mem.len(suffix_items)
let item_len: usize = std.mem.len(items)
if suffix_len > item_len {
return false
}
let offset: usize = item_len - suffix_len
var index: usize = 0
while index < suffix_len {
if items[offset + index] != suffix_items[index] {
return false
}
index = index + 1
}
return true
}
fn __zero_std_mem_split_before<T: Type>(items: Span<T>, delimiter: T) -> Span<T> {
var index: usize = 0
while index < std.mem.len(items) {
if items[index] == delimiter {
return items[..index]
}
index = index + 1
}
return items
}
fn __zero_std_mem_split_after<T: Type>(items: Span<T>, delimiter: T) -> Span<T> {
var index: usize = 0
while index < std.mem.len(items) {
if items[index] == delimiter {
return items[index + 1..]
}
index = index + 1
}
return items[std.mem.len(items)..]
}
fn __zero_std_mem_is_empty<T: Type>(items: Span<T>) -> Bool {
return std.mem.len(items) == 0
}
fn __zero_std_mem_prefix<T: Type>(items: Span<T>, count: usize) -> Span<T> {
var end: usize = count
if end > std.mem.len(items) {
end = std.mem.len(items)
}
return items[..end]
}
fn __zero_std_mem_drop_prefix<T: Type>(items: Span<T>, count: usize) -> Span<T> {
var start: usize = count
if start > std.mem.len(items) {
start = std.mem.len(items)
}
return items[start..]
}
fn __zero_std_mem_suffix<T: Type>(items: Span<T>, count: usize) -> Span<T> {
let length: usize = std.mem.len(items)
var start: usize = 0
if count < length {
start = length - count
}
return items[start..]
}
fn __zero_std_mem_drop_suffix<T: Type>(items: Span<T>, count: usize) -> Span<T> {
var end: usize = std.mem.len(items)
if count < end {
end = end - count
} else {
end = 0
}
return items[..end]
}
fn __zero_std_mem_slice<T: Type>(items: Span<T>, start: usize, count: usize) -> Span<T> {
let length: usize = std.mem.len(items)
var begin: usize = start
if begin > length {
begin = length
}
var end: usize = begin + count
if end < begin || end > length {
end = length
}
return items[begin..end]
}
fn __zero_std_mem_chunk_count<T: Type>(items: Span<T>, chunk_size: usize) -> usize {
if chunk_size == 0 {
return 0
}
let length: usize = std.mem.len(items)
let full: usize = length / chunk_size
if length % chunk_size == 0 {
return full
}
return full + 1
}
fn __zero_std_mem_chunk<T: Type>(items: Span<T>, chunk_index: usize, chunk_size: usize) -> Span<T> {
let count: usize = __zero_std_mem_chunk_count(items, chunk_size)
let length: usize = std.mem.len(items)
if chunk_index >= count {
return items[length..]
}
let start: usize = chunk_index * chunk_size
return __zero_std_mem_slice(items, start, chunk_size)
}
fn __zero_std_mem_window_count<T: Type>(items: Span<T>, window_size: usize) -> usize {
if window_size == 0 {
return 0
}
let length: usize = std.mem.len(items)
if window_size > length {
return 0
}
return length - window_size + 1
}
fn __zero_std_mem_window<T: Type>(items: Span<T>, window_index: usize, window_size: usize) -> Span<T> {
let count: usize = __zero_std_mem_window_count(items, window_size)
let length: usize = std.mem.len(items)
if window_index >= count {
return items[length..]
}
return __zero_std_mem_slice(items, window_index, window_size)
}
fn __zero_std_mem_advance<T: Type>(items: Span<T>, cursor: usize, count: usize) -> usize {
let length: usize = std.mem.len(items)
if cursor >= length {
return length
}
let next: usize = cursor + count
if next < cursor || next > length {
return length
}
return next
}
fn __zero_std_mem_cursor_done<T: Type>(items: Span<T>, cursor: usize) -> Bool {
return cursor >= std.mem.len(items)
}
fn __zero_std_mem_remaining<T: Type>(items: Span<T>, cursor: usize) -> Span<T> {
return __zero_std_mem_drop_prefix(items, cursor)
}
fn __zero_std_mem_cursor_chunk<T: Type>(items: Span<T>, cursor: usize, count: usize) -> Span<T> {
return __zero_std_mem_slice(items, cursor, count)
}