+static VALUE c_int_msg_init (VALUE self, VALUE val)
+{
+ Check_Type (val, T_FIXNUM);
+
+ rb_call_super (0, NULL);
+
+ rb_iv_set (self, "@type", UINT2NUM (EDJE_MESSAGE_INT));
+ rb_iv_set (self, "@value", val);
+
+ return self;
+}
+
+static VALUE c_int_msg_serialize (VALUE self)
+{
+ static volatile Edje_Message_Int ret;
+ VALUE i;
+
+ i = rb_iv_get (self, "@value");
+ ret.val = NUM2INT (i);
+
+ return (VALUE) &ret;
+}
+
+static VALUE c_float_msg_init (VALUE self, VALUE val)
+{
+ Check_Type (val, T_FLOAT);
+
+ rb_call_super (0, NULL);
+
+ rb_iv_set (self, "@type", UINT2NUM (EDJE_MESSAGE_FLOAT));
+ rb_iv_set (self, "@value", val);
+
+ return self;
+}
+
+static VALUE c_float_msg_serialize (VALUE self)
+{
+ static volatile Edje_Message_Float ret;
+ VALUE f;
+
+ f = rb_iv_get (self, "@value");
+ ret.val = NUM2DBL (f);
+
+ return (VALUE) &ret;
+}
+