blob: d8517587df9a6ec483eee6c7c758cda5a351c855 [file] [log] [blame]
Damiend99b0522013-12-21 18:17:45 +00001#include "nlr.h"
2#include "misc.h"
3#include "mpconfig.h"
Damien George55baff42014-01-21 21:40:13 +00004#include "qstr.h"
Damiend99b0522013-12-21 18:17:45 +00005#include "obj.h"
6#include "runtime.h"
7
8typedef struct _mp_obj_cell_t {
9 mp_obj_base_t base;
10 mp_obj_t obj;
11} mp_obj_cell_t;
12
13mp_obj_t mp_obj_cell_get(mp_obj_t self_in) {
14 mp_obj_cell_t *self = self_in;
15 return self->obj;
16}
17
18void mp_obj_cell_set(mp_obj_t self_in, mp_obj_t obj) {
19 mp_obj_cell_t *self = self_in;
20 self->obj = obj;
21}
22
23const mp_obj_type_t cell_type = {
Damien Georgec5966122014-02-15 16:10:44 +000024 { &mp_type_type },
Damien Georgea71c83a2014-02-15 11:34:50 +000025 .name = MP_QSTR_, // should never need to print cell type
Damiend99b0522013-12-21 18:17:45 +000026};
27
28mp_obj_t mp_obj_new_cell(mp_obj_t obj) {
29 mp_obj_cell_t *o = m_new_obj(mp_obj_cell_t);
30 o->base.type = &cell_type;
31 o->obj = obj;
32 return o;
33}