Line data Source code
1 : /* File: layout_subelement_id.inl; Copyright and License: see below */
2 :
3 : #include "u8/u8_trace.h"
4 : #include <assert.h>
5 :
6 : static inline void layout_subelement_id_init( layout_subelement_id_t *this_ ,
7 : layout_subelement_kind_t kind,
8 : const data_full_id_t *id )
9 : {
10 : (*this_).kind = kind;
11 : data_full_id_copy( &((*this_).id), id );
12 : }
13 :
14 0 : static inline void layout_subelement_id_init_void( layout_subelement_id_t *this_ )
15 : {
16 0 : (*this_).kind = LAYOUT_SUBELEMENT_KIND_VOID;
17 0 : data_full_id_init_void( &((*this_).id) );
18 0 : }
19 :
20 0 : static inline void layout_subelement_id_reinit( layout_subelement_id_t *this_,
21 : layout_subelement_kind_t kind,
22 : const data_full_id_t *id )
23 : {
24 0 : (*this_).kind = kind;
25 0 : data_full_id_replace( &((*this_).id ), id );
26 0 : }
27 :
28 : static inline void layout_subelement_id_init_solo( layout_subelement_id_t *this_,
29 : layout_subelement_kind_t kind,
30 : const data_id_t *id )
31 : {
32 : (*this_).kind = kind;
33 : data_full_id_init_solo( &((*this_).id ), id );
34 : }
35 :
36 0 : static inline void layout_subelement_id_reinit_solo( layout_subelement_id_t *this_,
37 : layout_subelement_kind_t kind,
38 : const data_id_t *id )
39 : {
40 0 : (*this_).kind = kind;
41 0 : data_full_id_reinit_solo( &((*this_).id ), id );
42 0 : }
43 :
44 : static inline void layout_subelement_id_copy( layout_subelement_id_t *this_, const layout_subelement_id_t *that )
45 : {
46 : (*this_).kind = (*that).kind;
47 : data_full_id_copy( &((*this_).id), &((*that).id) );
48 : }
49 :
50 : static inline void layout_subelement_id_replace( layout_subelement_id_t *this_, const layout_subelement_id_t *that )
51 : {
52 : (*this_).kind = (*that).kind;
53 : data_full_id_replace( &((*this_).id), &((*that).id) );
54 : }
55 :
56 : static inline void layout_subelement_id_destroy( layout_subelement_id_t *this_ )
57 : {
58 : data_full_id_destroy( &((*this_).id) );
59 : }
60 :
61 0 : static inline bool layout_subelement_id_is_valid( const layout_subelement_id_t *this_ )
62 : {
63 0 : return (( (*this_).kind != LAYOUT_SUBELEMENT_KIND_VOID )&&( data_full_id_is_valid( &((*this_).id) ) ));
64 : }
65 :
66 0 : static inline layout_subelement_kind_t layout_subelement_id_get_kind( const layout_subelement_id_t *this_ )
67 : {
68 0 : return (*this_).kind;
69 : }
70 :
71 0 : static inline const data_full_id_t *layout_subelement_id_get_id_const( const layout_subelement_id_t *this_ )
72 : {
73 0 : return &((*this_).id);
74 : }
75 :
76 :
77 : /*
78 : Copyright 2024-2025 Andreas Warnke
79 :
80 : Licensed under the Apache License, Version 2.0 (the "License");
81 : you may not use this file except in compliance with the License.
82 : You may obtain a copy of the License at
83 :
84 : http://www.apache.org/licenses/LICENSE-2.0
85 :
86 : Unless required by applicable law or agreed to in writing, software
87 : distributed under the License is distributed on an "AS IS" BASIS,
88 : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
89 : See the License for the specific language governing permissions and
90 : limitations under the License.
91 : */
|