Types: Add Lth_Vector macro
parent
22421f7eeb
commit
668f77010f
|
@ -30,6 +30,8 @@ Lth_X(SIGUPDATE , update, void, struct Lth_Control *)
|
||||||
#elif !defined(lithos3__Lth_callback_h)
|
#elif !defined(lithos3__Lth_callback_h)
|
||||||
#define lithos3__Lth_callback_h
|
#define lithos3__Lth_callback_h
|
||||||
|
|
||||||
|
#include "Lth_types.h"
|
||||||
|
|
||||||
#define Lth_Callback(name) ((Lth_Callback_t)(name))
|
#define Lth_Callback(name) ((Lth_Callback_t)(name))
|
||||||
#define Lth_Call(name, ...) \
|
#define Lth_Call(name, ...) \
|
||||||
do \
|
do \
|
||||||
|
@ -70,7 +72,7 @@ typedef void (*Lth_Callback_t)(void);
|
||||||
typedef struct Lth_CallbackSet
|
typedef struct Lth_CallbackSet
|
||||||
{
|
{
|
||||||
#define Lth_X(sig, name, ret, ...) \
|
#define Lth_X(sig, name, ret, ...) \
|
||||||
struct { Lth_##sig##_t *data; size_t size; } name;
|
Lth_Vector(Lth_##sig##_t) name;
|
||||||
#include "Lth_callback.h"
|
#include "Lth_callback.h"
|
||||||
} Lth_CallbackSet;
|
} Lth_CallbackSet;
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,10 @@
|
||||||
#define Lth_Inherits(name) [[__anonymous]] name _super
|
#define Lth_Inherits(name) [[__anonymous]] name _super
|
||||||
#define Lth_Mixin(name) [[__anonymous]] name _##name
|
#define Lth_Mixin(name) [[__anonymous]] name _##name
|
||||||
|
|
||||||
|
#define Lth_Vector(type) struct { type *data; size_t size; }
|
||||||
|
#define Lth_VectorForEach(tmpv, vec) \
|
||||||
|
for(tmpv = (vec).data; tmpv != (vec).data + (vec).size; tmpv++)
|
||||||
|
|
||||||
|
|
||||||
// Type Definitions ----------------------------------------------------------|
|
// Type Definitions ----------------------------------------------------------|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue