Skip to content
VecInsertRangeFastR

VecInsertRangeFastR

Description

Insert a range using fast (order-not-preserving) placement. R-value form.

Success

Returns true. Same state effects as VecInsertRangeFastL minus the source-zeroing step; the source range is left untouched.

Failure

Returns false on allocation failure. The vector is unchanged.

Usage example (Cross-references)

Usage examples (Cross-references)
                        values[i] = (i32)extract_u32(data, offset, data_size);
                    }
                    VecInsertRangeFastR(vec, values, idx, count);
                }
                break;
    
        // Use VecInsertRangeFastR with a small array
        VecInsertRangeFastR(&vec2, small_arr, 1, 2);
    
        // Check vector length
        size new_count   = sizeof(new_items) / sizeof(new_items[0]);
    
        bool result = VecInsertRangeFastR(&vec, new_items, idx, new_count);
        result      = result && (VecLen(&vec) == orig_count + new_count);
    /// TAGS: Vec, PushFront, Range, RValue, Fast, Unordered
    ///
    #define VecPushFrontArrFastR(v, arr, count) VecInsertRangeFastR((v), (arr), 0, (count))
    
    ///
    #define VecMustInsertRangeFastR(v, varr, idx, count)                                                                   \
        do {                                                                                                               \
            if (!VecInsertRangeFastR((v), (varr), (idx), (count))) {                                                       \
                LOG_FATAL("VecMustInsertRangeFastR failed");                                                               \
            }                                                                                                              \
    #define StrInsertManyFast(...) OVERLOAD(StrInsertManyFast, __VA_ARGS__)
    #define StrInsertManyFast_3(str, zstr, idx)                                                                        \
        _Generic((zstr), Zstr: VecInsertRangeFastR((str), (Zstr)(zstr), (idx), ZstrLen((Zstr)(zstr))), char *: VecInsertRangeFastR((str), (Zstr)(zstr), (idx), ZstrLen((Zstr)(zstr))))
    #define StrInsertManyFast_4(str, cstr, cstr_len, idx)                                                              \
        _Generic((cstr), Zstr: VecInsertRangeFastR((str), (Zstr)(cstr), (idx), (cstr_len)), char *: VecInsertRangeFastR((str), (Zstr)(cstr), (idx), (cstr_len)))
        _Generic((zstr), Zstr: VecInsertRangeFastR((str), (Zstr)(zstr), (idx), ZstrLen((Zstr)(zstr))), char *: VecInsertRangeFastR((str), (Zstr)(zstr), (idx), ZstrLen((Zstr)(zstr))))
    #define StrInsertManyFast_4(str, cstr, cstr_len, idx)                                                              \
        _Generic((cstr), Zstr: VecInsertRangeFastR((str), (Zstr)(cstr), (idx), (cstr_len)), char *: VecInsertRangeFastR((str), (Zstr)(cstr), (idx), (cstr_len)))
    
    ///
    /// TAGS: Str, Insert, Range, RValue, Fast, Unordered
    ///
    #define StrInsertRangeFastR(str, varr, idx, count) VecInsertRangeFastR((str), (varr), (idx), (count))
    
    ///
Last updated on