+static ZEND_METHOD(ion_Serializer_Serializer, serializeNull)
+{
+ php_ion_serializer *obj = php_ion_obj(serializer, Z_OBJ_P(ZEND_THIS));
+ OBJ_CHECK(obj);
+
+ ZEND_PARSE_PARAMETERS_NONE();
+
+ ION_CHECK(ion_writer_write_null(php_ion_obj(writer, obj->wri)->writer));
+}
+
+static ZEND_METHOD(ion_Serializer_Serializer, serializeBool)
+{
+ php_ion_serializer *obj = php_ion_obj(serializer, Z_OBJ_P(ZEND_THIS));
+ OBJ_CHECK(obj);
+
+ zend_bool b;
+ ZEND_PARSE_PARAMETERS_START(1, 1)
+ Z_PARAM_BOOL(b)
+ ZEND_PARSE_PARAMETERS_END();
+
+ ION_CHECK(ion_writer_write_bool(php_ion_obj(writer, obj->wri)->writer, b));
+}
+
+static ZEND_METHOD(ion_Serializer_Serializer, serializeInt)
+{
+ php_ion_serializer *obj = php_ion_obj(serializer, Z_OBJ_P(ZEND_THIS));
+ OBJ_CHECK(obj);
+
+ zend_long l;
+ ZEND_PARSE_PARAMETERS_START(1, 1)
+ Z_PARAM_LONG(l);
+ ZEND_PARSE_PARAMETERS_END();
+
+ ION_CHECK(ion_writer_write_int64(php_ion_obj(writer, obj->wri)->writer, l));
+}
+
+static ZEND_METHOD(ion_Serializer_Serializer, serializeFloat)
+{
+ php_ion_serializer *obj = php_ion_obj(serializer, Z_OBJ_P(ZEND_THIS));
+ OBJ_CHECK(obj);
+
+ double d;
+ ZEND_PARSE_PARAMETERS_START(1, 1)
+ Z_PARAM_DOUBLE(d);
+ ZEND_PARSE_PARAMETERS_END();
+
+ ION_CHECK(ion_writer_write_double(php_ion_obj(writer, obj->wri)->writer, d));
+}
+
+static ZEND_METHOD(ion_Serializer_Serializer, serializeString)