Derive-C
Loading...
Searching...
No Matches
trait.c
Go to the documentation of this file.
1
#include <stdint.h>
2
3
#include <
derive-c/prelude.h
>
4
5
#define Foo_REFLECT(F) \
6
F(uint32_t, bing) \
7
F(char, baz) \
8
F(char, zing)
9
10
DC_DERIVE_STRUCT
(Foo)
11
DC_DERIVE_EQ
(Foo)
12
DC_DERIVE_CLONE
(Foo)
13
DC_DERIVE_ORD
(Foo)
14
15
int
main
() {
16
Foo f = {.bing = 23, .baz =
'c'
, .zing =
'z'
};
17
Foo g = {.bing = 23, .baz =
'c'
, .zing =
'z'
};
18
19
DC_ASSERT
(Foo_eq(&f, &g));
20
DC_ASSERT
(!Foo_gt(&f, &g) && !Foo_lt(&f, &g));
21
22
Foo z = Foo_clone(&f);
23
z.bing += 10;
24
DC_ASSERT
(Foo_gt(&z, &f));
25
}
main
int main()
Definition
alloc.c:109
DC_DERIVE_CLONE
#define DC_DERIVE_CLONE(TYPE)
Definition
clone.h:18
DC_DERIVE_STRUCT
#define DC_DERIVE_STRUCT(TYPE,...)
Definition
derive.h:13
DC_DERIVE_EQ
#define DC_DERIVE_EQ(TYPE)
Definition
eq.h:26
DC_DERIVE_ORD
#define DC_DERIVE_ORD(TYPE)
Definition
ord.h:26
DC_ASSERT
#define DC_ASSERT(expr,...)
Definition
panic.h:37
prelude.h
examples
basic
core
trait.c
Generated by
1.15.0