2019-05-31 23:57:28 +09:00
|
|
|
#define MUST_USE_FUNC __attribute__((warn_unused_result))
|
|
|
|
#define MUST_USE_STRUCT __attribute__((warn_unused))
|
|
|
|
#define MUST_USE_ENUM /* nothing */
|
|
|
|
|
|
|
|
|
|
|
|
#include <stdarg.h>
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include <stdint.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
|
|
|
enum MaybeOwnedPtr_i32_Tag
|
|
|
|
#ifdef __cplusplus
|
|
|
|
: uint8_t
|
|
|
|
#endif // __cplusplus
|
|
|
|
{
|
|
|
|
Owned_i32,
|
|
|
|
None_i32,
|
|
|
|
};
|
|
|
|
#ifndef __cplusplus
|
|
|
|
typedef uint8_t MaybeOwnedPtr_i32_Tag;
|
|
|
|
#endif // __cplusplus
|
|
|
|
|
2020-11-29 02:33:15 +03:00
|
|
|
typedef struct MUST_USE_STRUCT {
|
2019-05-31 23:57:28 +09:00
|
|
|
MaybeOwnedPtr_i32_Tag tag;
|
|
|
|
union {
|
2020-12-05 03:41:47 +03:00
|
|
|
struct {
|
|
|
|
int32_t *owned;
|
|
|
|
};
|
2019-05-31 23:57:28 +09:00
|
|
|
};
|
|
|
|
} MaybeOwnedPtr_i32;
|
|
|
|
|
|
|
|
typedef struct MUST_USE_STRUCT {
|
|
|
|
int32_t *ptr;
|
|
|
|
} OwnedPtr_i32;
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif // __cplusplus
|
|
|
|
|
|
|
|
MUST_USE_FUNC MaybeOwnedPtr_i32 maybe_consume(OwnedPtr_i32 input);
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
} // extern "C"
|
|
|
|
#endif // __cplusplus
|