src/map.c

changeset 706
8c6edaccaef1
child 709
1e8ba59e7911
equal deleted inserted replaced
705:0d5447230044 706:8c6edaccaef1
1 /*
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3 *
4 * Copyright 2023 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 */
28
29 #include "cx/map.h"
30
31 // <editor-fold desc="empty map implementation">
32
33 static void cx_empty_map_noop(__attribute__((__unused__)) CxMap *map) {
34 // this is a noop, but MUST be implemented
35 }
36
37 static void *cx_empty_map_get(
38 __attribute__((__unused__)) CxMap const *map,
39 __attribute__((__unused__)) CxHashKey key
40 ) {
41 return NULL;
42 }
43
44 static bool cx_empty_map_iter_valid(__attribute__((__unused__)) void const *iter) {
45 return false;
46 }
47
48 static CxIterator cx_empty_map_iterator(struct cx_map_s const *map) {
49 CxIterator iter = {0};
50 iter.src_handle = map;
51 iter.base.valid = cx_empty_map_iter_valid;
52 return iter;
53 }
54
55 static CxMutIterator cx_empty_map_miterator(struct cx_map_s *map) {
56 CxMutIterator iter = {0};
57 iter.src_handle = map;
58 iter.base.valid = cx_empty_map_iter_valid;
59 return iter;
60 }
61
62 static struct cx_map_class_s cx_empty_map_class = {
63 cx_empty_map_noop,
64 cx_empty_map_noop,
65 NULL,
66 cx_empty_map_get,
67 NULL,
68 cx_empty_map_iterator,
69 cx_empty_map_iterator,
70 cx_empty_map_iterator,
71 cx_empty_map_miterator,
72 cx_empty_map_miterator,
73 cx_empty_map_miterator,
74 };
75
76 CxMap cx_empty_map = {
77 NULL,
78 NULL,
79 0,
80 0,
81 NULL,
82 NULL,
83 NULL,
84 false,
85 &cx_empty_map_class
86 };
87
88 CxMap * const cxEmptyMap = &cx_empty_map;
89
90 // </editor-fold>

mercurial