diff options
| author | Tyge Løvset <[email protected]> | 2021-05-22 15:20:32 +0200 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2021-05-22 15:20:32 +0200 |
| commit | 7472580ee0159d7164bf2a219c292cd060b904a2 (patch) | |
| tree | 51c3ef11078dbf09ad78d7af07d24c3e4eed375f /include | |
| parent | 24f6e33a161b70f549d2c436dd1fc2b4c705273a (diff) | |
| download | STC-modified-7472580ee0159d7164bf2a219c292cd060b904a2.tar.gz STC-modified-7472580ee0159d7164bf2a219c292cd060b904a2.zip | |
Added *_value_toraw() methods to base containers.
Diffstat (limited to 'include')
| -rw-r--r-- | include/stc/cdeq.h | 1 | ||||
| -rw-r--r-- | include/stc/clist.h | 4 | ||||
| -rw-r--r-- | include/stc/cmap.h | 6 | ||||
| -rw-r--r-- | include/stc/csmap.h | 5 | ||||
| -rw-r--r-- | include/stc/cvec.h | 5 |
5 files changed, 17 insertions, 4 deletions
diff --git a/include/stc/cdeq.h b/include/stc/cdeq.h index 990c556a..ee0d1c2c 100644 --- a/include/stc/cdeq.h +++ b/include/stc/cdeq.h @@ -75,6 +75,7 @@ struct cdeq_rep { size_t size, cap; void* base[]; }; STC_INLINE size_t CX##_capacity(CX cx) {return _cdeq_rep(&cx)->cap;} \
STC_INLINE void CX##_swap(CX* a, CX* b) {c_swap(CX, *a, *b);} \
STC_INLINE Value CX##_value_fromraw(RawValue raw) {return valueFromRaw(raw);} \
+ STC_INLINE RawValue CX##_value_toraw(CX##_value_t* pval) {return valueToRaw(pval);} \
STC_INLINE Value CX##_value_clone(Value val) \
{return valueFromRaw(valueToRaw(&val));} \
STC_INLINE void CX##_emplace_back(CX* self, RawValue raw) \
diff --git a/include/stc/clist.h b/include/stc/clist.h index 8e23a43e..55ab5bf0 100644 --- a/include/stc/clist.h +++ b/include/stc/clist.h @@ -120,10 +120,10 @@ STC_API size_t _clist_count(const clist_VOID* self); STC_INLINE size_t CX##_count(CX cx) \
{return _clist_count((const clist_VOID*) &cx);} \
STC_INLINE void CX##_clear(CX* self) {CX##_del(self);} \
+ STC_INLINE Value CX##_value_fromraw(RawValue raw) {return valueFromRaw(raw);} \
+ STC_INLINE RawValue CX##_value_toraw(CX##_value_t* pval) {return valueToRaw(pval);} \
STC_INLINE Value CX##_value_clone(Value val) \
{return valueFromRaw(valueToRaw(&val));} \
- STC_INLINE Value CX##_value_fromraw(RawValue raw) \
- {return valueFromRaw(raw);} \
STC_INLINE void CX##_pop_front(CX* self) \
{CX##_erase_after_(self, self->last);} \
STC_INLINE CX##_iter_t CX##_erase(CX* self, CX##_iter_t it) \
diff --git a/include/stc/cmap.h b/include/stc/cmap.h index 937da0af..efa1ddb9 100644 --- a/include/stc/cmap.h +++ b/include/stc/cmap.h @@ -209,6 +209,12 @@ STC_INLINE uint64_t c_default_hash64(const void* data, size_t ignored) MAP_ONLY_##C( _dst->second = mappedFromRaw(mappedToRaw(&_val->second)); ) \
} \
\
+ STC_INLINE CX##_rawvalue_t \
+ CX##_value_toraw(CX##_value_t* val) { \
+ return SET_ONLY_##C( keyToRaw(val) ) \
+ MAP_ONLY_##C( c_make(CX##_rawvalue_t){keyToRaw(&val->first), mappedToRaw(&val->second)} ); \
+ } \
+\
STC_INLINE void \
CX##_value_del(CX##_value_t* _val) { \
keyDel((CX##_key_t*) KEY_REF_##C(_val)); \
diff --git a/include/stc/csmap.h b/include/stc/csmap.h index 4a57ee33..91cf3d11 100644 --- a/include/stc/csmap.h +++ b/include/stc/csmap.h @@ -206,6 +206,11 @@ struct csmap_rep { size_t root, disp, head, size, cap; void* nodes[]; }; return tree; \
} \
\
+ STC_INLINE CX##_rawvalue_t \
+ CX##_value_toraw(CX##_value_t* val) { \
+ return SET_ONLY_##C( keyToRaw(val) ) \
+ MAP_ONLY_##C( c_make(CX##_rawvalue_t){keyToRaw(&val->first), mappedToRaw(&val->second)} ); \
+ } \
STC_INLINE void \
CX##_value_del(CX##_value_t* val) { \
keyDel((CX##_key_t*) KEY_REF_##C(val)); \
diff --git a/include/stc/cvec.h b/include/stc/cvec.h index dc090dae..e4feaf8a 100644 --- a/include/stc/cvec.h +++ b/include/stc/cvec.h @@ -75,6 +75,9 @@ struct cvec_rep { size_t size, cap; void* data[]; }; STC_INLINE size_t CX##_capacity(CX cx) { return _cvec_rep(&cx)->cap; } \
STC_INLINE bool CX##_empty(CX cx) {return !_cvec_rep(&cx)->size;} \
STC_INLINE Value CX##_value_fromraw(RawValue raw) {return valueFromRaw(raw);} \
+ STC_INLINE RawValue CX##_value_toraw(CX##_value_t* val) {return valueToRaw(val);} \
+ STC_INLINE Value CX##_value_clone(CX##_value_t val) \
+ {return valueFromRaw(valueToRaw(&val));} \
STC_INLINE void CX##_swap(CX* a, CX* b) {c_swap(CX, *a, *b);} \
STC_INLINE CX##_value_t*CX##_front(const CX* self) {return self->data;} \
STC_INLINE CX##_value_t*CX##_back(const CX* self) \
@@ -83,8 +86,6 @@ struct cvec_rep { size_t size, cap; void* data[]; }; {CX##_push_back(self, valueFromRaw(raw));} \
STC_INLINE void CX##_pop_back(CX* self) \
{valueDel(&self->data[--_cvec_rep(self)->size]);} \
- STC_INLINE Value CX##_value_clone(CX##_value_t val) \
- {return valueFromRaw(valueToRaw(&val));} \
STC_INLINE CX##_iter_t CX##_begin(const CX* self) \
{return c_make(CX##_iter_t){self->data};} \
STC_INLINE CX##_iter_t CX##_end(const CX* self) \
|
