src/array.c

Thu, 04 Jul 2019 20:07:31 +0200

author
Mike Becker <universe@uap-core.de>
date
Thu, 04 Jul 2019 20:07:31 +0200
branch
feature/array
changeset 334
bc81faa9afda
parent 323
src/list.c@b8c49e7a1dba
child 336
6d7aa8a1a3b3
permissions
-rw-r--r--

adds array interface and tests

     1 /*
     2  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     3  *
     4  * Copyright 2019 Mike Becker, Olaf Wintermann All rights reserved.
     5  *
     6  * Redistribution and use in source and binary forms, with or without
     7  * modification, are permitted provided that the following conditions are met:
     8  *
     9  *   1. Redistributions of source code must retain the above copyright
    10  *      notice, this list of conditions and the following disclaimer.
    11  *
    12  *   2. Redistributions in binary form must reproduce the above copyright
    13  *      notice, this list of conditions and the following disclaimer in the
    14  *      documentation and/or other materials provided with the distribution.
    15  *
    16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    17  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    19  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    20  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    23  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    24  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    25  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    26  * POSSIBILITY OF SUCH DAMAGE.
    27  */
    29 #include "ucx/array.h"
    32 UcxArray ucx_array_new(size_t capacity, size_t elemsize) {
    33     return ucx_array_new_a(capacity, elemsize, ucx_default_allocator());
    34 }
    36 UcxArray ucx_array_new_a(size_t capacity, size_t elemsize,
    37         UcxAllocator* allocator) {
    38     UcxArray array;
    40     return array;
    41 }
    43 UcxArray ucx_array_clone(UcxArray array) {
    44     UcxArray clone;
    46     return clone;
    47 }
    49 int ucx_array_equals(UcxArray array1, UcxArray array2,
    50         cmp_func cmpfnc, void* data) {
    52     return 1;
    53 }
    55 void ucx_array_free(UcxArray *array) {
    57 }
    59 int ucx_array_append(UcxArray *array, void *data) {
    60     return 1;
    61 }
    63 int ucx_array_prepend(UcxArray *array, void *data) {
    64     return 1;
    65 }
    67 int ucx_array_concat(UcxArray *array1, const UcxArray *array2) {
    68     return 1;
    69 }
    71 void *ucx_array_at(UcxArray array, size_t index) {
    72     return NULL;
    73 }
    75 size_t ucx_array_find(UcxArray array, void *elem, cmp_func cmpfnc, void *data) {
    77     return 0;
    78 }
    80 int ucx_array_contains(UcxArray array, void *elem, cmp_func cmpfnc, void *data) {
    81     return ucx_array_find(array, elem, cmpfnc, data) != array.size;
    82 }
    84 int ucx_array_sort(UcxArray array, cmp_func cmpfnc, void *data) {
    85     return 1;
    86 }
    88 void ucx_array_remove(UcxArray *array, size_t index) {
    90 }
    92 void ucx_array_remove_fast(UcxArray *array, size_t index) {
    94 }
    96 int ucx_array_shrink(UcxArray* array) {
    97     return 1;
    98 }
   100 int ucx_array_resize(UcxArray* array, size_t capacity) {
   101     return 1;
   102 }
   104 int ucx_array_reserve(UcxArray* array, size_t capacity) {
   105     return 1;
   106 }

mercurial