Skip to content

VecInsert

Description

Insert a single element at idx, preserving order and taking ownership of lval when no deep-copy handler is configured. Default unsuffixed form aliasing to the L (ownership) variant. See VecInsertL for the full SUCCESS/FAILURE contract.

Usage example (Cross-references)

Usage examples (Cross-references)
                    char  *str   = generate_cstring(data, offset, data_size, 32);
                    if (str) {
                        VecInsert(vec, str, index);
                        cleanup_cstring(str);
                    }
                    size_t index = extract_u32(data, offset, data_size) % (VecLen(vec) + 1);
                    Str    str   = generate_str_from_input(data, offset, data_size, 32, alloc);
                    VecInsert(vec, str, index);
                }
                break;
    
                if (idx <= VecLen(vec)) {
                    VecInsert(vec, value, idx);
                }
                break;
    // Test VecInsert function
    bool test_vec_insert(void) {
        WriteFmt("Testing VecInsert\n");
    
        // Create a vector of integers
    /// TAGS: Vec, PushBack, Insert
    ///
    #define VecPushBack(v, val) VecInsert((v), (val), (v)->length)
    
    ///
    #define VecMustInsert(v, lval, idx)                                                                                    \
        do {                                                                                                               \
            if (!VecInsert((v), (lval), (idx))) {                                                                          \
                LOG_FATAL("VecMustInsert failed");                                                                         \
            }                                                                                                              \
Last updated on