diff options
Diffstat (limited to 'py/objcell.c')
-rw-r--r-- | py/objcell.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/py/objcell.c b/py/objcell.c new file mode 100644 index 0000000000..cba1980579 --- /dev/null +++ b/py/objcell.c @@ -0,0 +1,43 @@ +#include <stdlib.h> +#include <stdint.h> +#include <assert.h> + +#include "nlr.h" +#include "misc.h" +#include "mpconfig.h" +#include "obj.h" +#include "runtime.h" + +typedef struct _mp_obj_cell_t { + mp_obj_base_t base; + mp_obj_t obj; +} mp_obj_cell_t; + +mp_obj_t mp_obj_cell_get(mp_obj_t self_in) { + mp_obj_cell_t *self = self_in; + return self->obj; +} + +void mp_obj_cell_set(mp_obj_t self_in, mp_obj_t obj) { + mp_obj_cell_t *self = self_in; + self->obj = obj; +} + +const mp_obj_type_t cell_type = { + { &mp_const_type }, + "cell", + NULL, // print + NULL, // call_n + NULL, // unary_op + NULL, // binary_op + NULL, // getiter + NULL, // iternext + {{NULL, NULL},}, // method list +}; + +mp_obj_t mp_obj_new_cell(mp_obj_t obj) { + mp_obj_cell_t *o = m_new_obj(mp_obj_cell_t); + o->base.type = &cell_type; + o->obj = obj; + return o; +} |