#define MUST_USE_FUNC __attribute__((warn_unused_result)) #define MUST_USE_STRUCT __attribute__((warn_unused)) #define MUST_USE_ENUM /* nothing */ #include #include #include #include enum MaybeOwnedPtr_i32_Tag #ifdef __cplusplus : uint8_t #endif // __cplusplus { Owned_i32, None_i32, }; #ifndef __cplusplus typedef uint8_t MaybeOwnedPtr_i32_Tag; #endif // __cplusplus typedef struct MUST_USE_STRUCT MaybeOwnedPtr_i32 { MaybeOwnedPtr_i32_Tag tag; union { struct { int32_t *owned; }; }; } MaybeOwnedPtr_i32; typedef struct MUST_USE_STRUCT OwnedPtr_i32 { int32_t *ptr; } OwnedPtr_i32; #ifdef __cplusplus extern "C" { #endif // __cplusplus MUST_USE_FUNC struct MaybeOwnedPtr_i32 maybe_consume(struct OwnedPtr_i32 input); #ifdef __cplusplus } // extern "C" #endif // __cplusplus