LCOV - code coverage report
Current view: top level - basic - ordered-set.h (source / functions) Hit Total Coverage
Test: main_coverage.info Lines: 20 29 69.0 %
Date: 2019-08-22 15:41:25 Functions: 11 13 84.6 %

          Line data    Source code
       1             : /* SPDX-License-Identifier: LGPL-2.1+ */
       2             : #pragma once
       3             : 
       4             : #include <stdio.h>
       5             : 
       6             : #include "hashmap.h"
       7             : 
       8             : typedef struct OrderedSet OrderedSet;
       9             : 
      10           5 : static inline OrderedSet* ordered_set_new(const struct hash_ops *ops) {
      11           5 :         return (OrderedSet*) ordered_hashmap_new(ops);
      12             : }
      13             : 
      14           0 : static inline int ordered_set_ensure_allocated(OrderedSet **s, const struct hash_ops *ops) {
      15           0 :         if (*s)
      16           0 :                 return 0;
      17             : 
      18           0 :         *s = ordered_set_new(ops);
      19           0 :         if (!*s)
      20           0 :                 return -ENOMEM;
      21             : 
      22           0 :         return 0;
      23             : }
      24             : 
      25           4 : static inline OrderedSet* ordered_set_free(OrderedSet *s) {
      26           4 :         return (OrderedSet*) ordered_hashmap_free((OrderedHashmap*) s);
      27             : }
      28             : 
      29          91 : static inline OrderedSet* ordered_set_free_free(OrderedSet *s) {
      30          91 :         return (OrderedSet*) ordered_hashmap_free_free((OrderedHashmap*) s);
      31             : }
      32             : 
      33          22 : static inline int ordered_set_put(OrderedSet *s, void *p) {
      34          22 :         return ordered_hashmap_put((OrderedHashmap*) s, p, p);
      35             : }
      36             : 
      37           0 : static inline unsigned ordered_set_size(OrderedSet *s) {
      38           0 :         return ordered_hashmap_size((OrderedHashmap*) s);
      39             : }
      40             : 
      41           5 : static inline bool ordered_set_isempty(OrderedSet *s) {
      42           5 :         return ordered_hashmap_isempty((OrderedHashmap*) s);
      43             : }
      44             : 
      45          18 : static inline bool ordered_set_iterate(OrderedSet *s, Iterator *i, void **value) {
      46          18 :         return ordered_hashmap_iterate((OrderedHashmap*) s, i, value, NULL);
      47             : }
      48             : 
      49           1 : static inline void* ordered_set_remove(OrderedSet *s, void *p) {
      50           1 :         return ordered_hashmap_remove((OrderedHashmap*) s, p);
      51             : }
      52             : 
      53           4 : static inline void* ordered_set_steal_first(OrderedSet *s) {
      54           4 :         return ordered_hashmap_steal_first((OrderedHashmap*) s);
      55             : }
      56             : 
      57           2 : static inline char **ordered_set_get_strv(OrderedSet *s) {
      58           2 :         return internal_hashmap_get_strv(HASHMAP_BASE((OrderedHashmap*) s));
      59             : }
      60             : 
      61             : int ordered_set_consume(OrderedSet *s, void *p);
      62             : int ordered_set_put_strdup(OrderedSet *s, const char *p);
      63             : int ordered_set_put_strdupv(OrderedSet *s, char **l);
      64             : int ordered_set_put_string_set(OrderedSet *s, OrderedSet *l);
      65             : void ordered_set_print(FILE *f, const char *field, OrderedSet *s);
      66             : 
      67             : #define ORDERED_SET_FOREACH(e, s, i)                                    \
      68             :         for ((i) = ITERATOR_FIRST; ordered_set_iterate((s), &(i), (void**)&(e)); )
      69             : 
      70           3 : DEFINE_TRIVIAL_CLEANUP_FUNC(OrderedSet*, ordered_set_free);
      71           1 : DEFINE_TRIVIAL_CLEANUP_FUNC(OrderedSet*, ordered_set_free_free);
      72             : 
      73             : #define _cleanup_ordered_set_free_ _cleanup_(ordered_set_freep)
      74             : #define _cleanup_ordered_set_free_free_ _cleanup_(ordered_set_free_freep)

Generated by: LCOV version 1.14