What it solves
C code needs explicit result propagation and reliable lexical cleanup without C++ RAII.
How it works
1Operation→2explicit result→3caller checks status→4value or error
Use it when
Return typed parse results
Attach cleanup to a lexical scope
Dismiss a guard after ownership transfer
Quick Start
#include <cguard/result.h>
RESULT_DEFINE(parse_result_t, int);
parse_result_t r=parse_result_t_ok(42);
/* Expected: r.status is success and r.value is 42. */Engineering evidence
- Public headers, examples, tests and a local verification document are present
Known limits
- Scope cleanup requires the supported compiler ABI
- Cleanup does not run through longjmp, abort, reset, hard fault or power loss
- Borrowed result messages keep their original lifetime