Derive-C
Loading...
Searching...
No Matches
general.c
Go to the documentation of this file.
1
#include <stdint.h>
2
3
#include <
derive-c/core/prelude.h
>
4
5
#define Foo_REFLECT(F) \
6
F(uint32_t, bing) \
7
F(char, baz) \
8
F(double, 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 = 3.14};
17
Foo g = {.bing = 23, .baz =
'c'
, .zing = 3.14};
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
}
DC_DERIVE_CLONE
#define DC_DERIVE_CLONE(TYPE)
Definition
clone.h:14
DC_DERIVE_STRUCT
#define DC_DERIVE_STRUCT(TYPE,...)
Definition
derive.h:13
DC_DERIVE_EQ
#define DC_DERIVE_EQ(TYPE)
Definition
eq.h:16
DC_DERIVE_ORD
#define DC_DERIVE_ORD(TYPE)
Definition
ord.h:17
DC_ASSERT
#define DC_ASSERT(expr,...)
Definition
panic.h:36
prelude.h
main
int main()
Definition
staticbump.c:45
examples
basic
core
trait
general.c
Generated by
1.15.0