summary refs log tree commit
path: root/ext/json/ext/generator/generator.h
diff options
context:
space:
mode:
authorFlorian Frank <flori@ping.de>2010-07-24 17:23:05 +0200
committerFlorian Frank <flori@ping.de>2010-07-24 17:23:05 +0200
commit59eab2b7ad1b44dc424fb3fffa5520947f7360f3 (patch)
treec31c133c71490be1b600e68f2a9936580317b666 /ext/json/ext/generator/generator.h
parent4ae585e5702145dcfaf037895dcb33d5a71c43c4 (diff)
downloadruby-json-59eab2b7ad1b44dc424fb3fffa5520947f7360f3.tar.gz
use method dispatch for generation again
Diffstat (limited to 'ext/json/ext/generator/generator.h')
-rw-r--r--ext/json/ext/generator/generator.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/ext/json/ext/generator/generator.h b/ext/json/ext/generator/generator.h
index 37240a9..fcf68bb 100644
--- a/ext/json/ext/generator/generator.h
+++ b/ext/json/ext/generator/generator.h
@@ -123,6 +123,7 @@ typedef struct JSON_Generator_StateStruct {
     long max_nesting;
     char allow_nan;
     char ascii_only;
+    FBuffer *buffer;
 } JSON_Generator_State;
 
 #define GET_STATE(self)                       \
@@ -131,7 +132,8 @@ typedef struct JSON_Generator_StateStruct {
 
 static VALUE mHash_to_json(int argc, VALUE *argv, VALUE self);
 static VALUE mArray_to_json(int argc, VALUE *argv, VALUE self);
-static VALUE mInteger_to_json(int argc, VALUE *argv, VALUE self);
+static VALUE mFixnum_to_json(int argc, VALUE *argv, VALUE self);
+static VALUE mBignum_to_json(int argc, VALUE *argv, VALUE self);
 static VALUE mFloat_to_json(int argc, VALUE *argv, VALUE self);
 static VALUE mString_included_s(VALUE self, VALUE modul);
 static VALUE mString_to_json(int argc, VALUE *argv, VALUE self);
@@ -147,9 +149,8 @@ static JSON_Generator_State *State_allocate();
 static VALUE cState_s_allocate(VALUE klass);
 static VALUE cState_configure(VALUE self, VALUE opts);
 static VALUE cState_to_h(VALUE self);
-static void generate_json(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj, long depth);
-static VALUE cState_partial_generate(VALUE self, VALUE obj, VALUE depth);
-static VALUE cState_generate(VALUE self, VALUE obj);
+static int cState_prepare_buffer(VALUE self);
+static VALUE cState_result(VALUE self, int returnResult);
 static VALUE cState_initialize(int argc, VALUE *argv, VALUE self);
 static VALUE cState_from_state_s(VALUE self, VALUE opts);
 static VALUE cState_indent(VALUE self);
@@ -166,5 +167,6 @@ static VALUE cState_max_nesting(VALUE self);
 static VALUE cState_max_nesting_set(VALUE self, VALUE depth);
 static VALUE cState_allow_nan_p(VALUE self);
 static VALUE cState_ascii_only_p(VALUE self);
+static void State_append_ruby_string_to_fbuffer(JSON_Generator_State *state, VALUE string);
 
 #endif