DoxigAlpha

safeTruncate

@truncate fails if the target type is larger than the target value. This causes problems when one of the types is usize, which may be larger or smaller than u32 on different systems. This version of truncate is safe to use if either parameter has dynamic size, and will perform widening conversion when needed. Both arguments must have the same signedness.

Function parameters

Parameters

#
T:type
val:anytype

Type definitions in this namespace

Types

#

An `ArrayHashMap` with default hash and equal functions.

Functions

#
AutoArrayHashMap
An `ArrayHashMap` with default hash and equal functions.
AutoArrayHashMapUnmanaged
An `ArrayHashMapUnmanaged` with default hash and equal functions.
StringArrayHashMap
An `ArrayHashMap` with strings as keys.
StringArrayHashMapUnmanaged
An `ArrayHashMapUnmanaged` with strings as keys.
ArrayHashMap
Deprecated in favor of `ArrayHashMapWithAllocator` (no code changes needed)
ArrayHashMapWithAllocator
A hash table of keys and values, each stored sequentially.
ArrayHashMapUnmanaged
A hash table of keys and values, each stored sequentially.

Source

Implementation

#
fn safeTruncate(comptime T: type, val: anytype) T {
    if (@bitSizeOf(T) >= @bitSizeOf(@TypeOf(val)))
        return val;
    return @as(T, @truncate(val));
}