/* Generated by genstub.  Do not edit. */
#include <gauche.h>
SCM_CLASS_DECL(FooClass);
#define SCM_FOO(obj) ((Foo*)obj)
#define SCM_FOOP(obj) SCM_ISA(obj, (&FooClass))
SCM_DEFINE_BASE_CLASS(FooClass, Foo, NULL, NULL, NULL, NULL, SCM_CLASS_TOP_CPL);

static ScmObj FooClass_x_GET(ScmObj OBJARG)
{
  Foo* obj = SCM_FOO(OBJARG);
  return SCM_OBJ_SAFE(obj->x);
}

static void FooClass_x_SET(ScmObj OBJARG, ScmObj value)
{
  Foo* obj = SCM_FOO(OBJARG);
  obj->x = (value);
}

static ScmObj FooClass_y_GET(ScmObj OBJARG)
{
  Foo* obj = SCM_FOO(OBJARG);
  return SCM_OBJ_SAFE(obj->y);
}

static void FooClass_y_SET(ScmObj OBJARG, ScmObj value)
{
  Foo* obj = SCM_FOO(OBJARG);
  obj->y = (value);
}

static ScmObj FooClass_z_GET(ScmObj OBJARG)
{
  Foo* obj = SCM_FOO(OBJARG);
  return SCM_OBJ_SAFE(obj->z);
}

static void FooClass_z_SET(ScmObj OBJARG, ScmObj value)
{
  Foo* obj = SCM_FOO(OBJARG);
  obj->z = (value);
}

static ScmClassStaticSlotSpec FooClass__SLOTS[] = {
  SCM_CLASS_SLOT_SPEC("x", FooClass_x_GET, FooClass_x_SET),
  SCM_CLASS_SLOT_SPEC("y", FooClass_y_GET, FooClass_y_SET),
  SCM_CLASS_SLOT_SPEC("z", FooClass_z_GET, FooClass_z_SET),
  SCM_CLASS_SLOT_SPEC_END()
};

void Scm_Init_cclass_basic(ScmModule *mod SCM_UNUSED){

  Scm_InitStaticClass(&FooClass, "foo", SCM_MODULE(mod), FooClass__SLOTS, 0);
}
