56 {
58
60 success_result = example_result_from_ok((
struct example_data){
61 .value = 42,
62 .description = strdup("A successful result"),
63 });
64
69
71 fprintf(stdout, "\n");
73 fprintf(stdout, "\n");
75 fprintf(stdout, "\n");
77 fprintf(stdout, "\n");
78
79 DC_ASSERT(!example_result_is_error(&success_result));
80 DC_ASSERT(example_result_is_error(&error_result));
81 DC_ASSERT(example_result_is_error(&invalid_result));
82 DC_ASSERT(example_result_is_error(&permission_result));
83
84 struct example_data const* ok_data = example_result_get_okay(&success_result);
88
89 enum error_kind const* error_data = example_result_get_error(&error_result);
92
93 enum error_kind const* invalid_data = example_result_get_error(&invalid_result);
96
97 enum error_kind const* permission_data = example_result_get_error(&permission_result);
100
101 DC_ASSERT(example_result_get_okay(&error_result) == NULL);
102 DC_ASSERT(example_result_get_error(&success_result) == NULL);
103}
static DC_PUBLIC dc_debug_fmt dc_debug_fmt_new()
#define DC_ASSERT(expr,...)
#define DC_SCOPED(type,...)
RAII in C. Call the destructor when the variable goes out of scope.