@@ -120,3 +120,151 @@ fn serialize_uint<S: serializer>(s: S, v: uint) {
120
120
fn deserialize_uint < D : deserializer > ( d : D ) -> uint {
121
121
d. read_uint ( )
122
122
}
123
+
124
+ fn serialize_u8 < S : serializer > ( s : S , v : u8 ) {
125
+ s. emit_u8 ( v) ;
126
+ }
127
+
128
+ fn deserialize_u8 < D : deserializer > ( d : D ) -> u8 {
129
+ d. read_u8 ( )
130
+ }
131
+
132
+ fn serialize_u16 < S : serializer > ( s : S , v : u16 ) {
133
+ s. emit_u16 ( v) ;
134
+ }
135
+
136
+ fn deserialize_u16 < D : deserializer > ( d : D ) -> u16 {
137
+ d. read_u16 ( )
138
+ }
139
+
140
+ fn serialize_u32 < S : serializer > ( s : S , v : u32 ) {
141
+ s. emit_u32 ( v) ;
142
+ }
143
+
144
+ fn deserialize_u32 < D : deserializer > ( d : D ) -> u32 {
145
+ d. read_u32 ( )
146
+ }
147
+
148
+ fn serialize_u64 < S : serializer > ( s : S , v : u64 ) {
149
+ s. emit_u64 ( v) ;
150
+ }
151
+
152
+ fn deserialize_u64 < D : deserializer > ( d : D ) -> u64 {
153
+ d. read_u64 ( )
154
+ }
155
+
156
+ fn serialize_int < S : serializer > ( s : S , v : int ) {
157
+ s. emit_int ( v) ;
158
+ }
159
+
160
+ fn deserialize_int < D : deserializer > ( d : D ) -> int {
161
+ d. read_int ( )
162
+ }
163
+
164
+ fn serialize_i8 < S : serializer > ( s : S , v : i8 ) {
165
+ s. emit_i8 ( v) ;
166
+ }
167
+
168
+ fn deserialize_i8 < D : deserializer > ( d : D ) -> i8 {
169
+ d. read_i8 ( )
170
+ }
171
+
172
+ fn serialize_i16 < S : serializer > ( s : S , v : i16 ) {
173
+ s. emit_i16 ( v) ;
174
+ }
175
+
176
+ fn deserialize_i16 < D : deserializer > ( d : D ) -> i16 {
177
+ d. read_i16 ( )
178
+ }
179
+
180
+ fn serialize_i32 < S : serializer > ( s : S , v : i32 ) {
181
+ s. emit_i32 ( v) ;
182
+ }
183
+
184
+ fn deserialize_i32 < D : deserializer > ( d : D ) -> i32 {
185
+ d. read_i32 ( )
186
+ }
187
+
188
+ fn serialize_i64 < S : serializer > ( s : S , v : i64 ) {
189
+ s. emit_i64 ( v) ;
190
+ }
191
+
192
+ fn deserialize_i64 < D : deserializer > ( d : D ) -> i64 {
193
+ d. read_i64 ( )
194
+ }
195
+
196
+ fn serialize_str < S : serializer > ( s : S , v : str ) {
197
+ s. emit_str ( v) ;
198
+ }
199
+
200
+ fn deserialize_str < D : deserializer > ( d : D ) -> str {
201
+ d. read_str ( )
202
+ }
203
+
204
+ fn serialize_float < S : serializer > ( s : S , v : float ) {
205
+ s. emit_float ( v) ;
206
+ }
207
+
208
+ fn deserialize_float < D : deserializer > ( d : D ) -> float {
209
+ d. read_float ( )
210
+ }
211
+
212
+ fn serialize_f32 < S : serializer > ( s : S , v : f32 ) {
213
+ s. emit_f32 ( v) ;
214
+ }
215
+
216
+ fn deserialize_f32 < D : deserializer > ( d : D ) -> f32 {
217
+ d. read_f32 ( )
218
+ }
219
+
220
+ fn serialize_f64 < S : serializer > ( s : S , v : f64 ) {
221
+ s. emit_f64 ( v) ;
222
+ }
223
+
224
+ fn deserialize_f64 < D : deserializer > ( d : D ) -> f64 {
225
+ d. read_f64 ( )
226
+ }
227
+
228
+ fn serialize_bool < S : serializer > ( s : S , v : bool ) {
229
+ s. emit_bool ( v) ;
230
+ }
231
+
232
+ fn deserialize_bool < D : deserializer > ( d : D ) -> bool {
233
+ d. read_bool ( )
234
+ }
235
+
236
+ fn serialize_option < S : serializer , T > ( s : S , v : option < T > , st : fn ( T ) ) {
237
+ s. emit_enum ( "option" ) { ||
238
+ alt v {
239
+ none {
240
+ s. emit_enum_variant ( "none" , 0 u, 0 u) { ||
241
+ }
242
+ }
243
+
244
+ some ( v) {
245
+ s. emit_enum_variant ( "some" , 1 u, 1 u) { ||
246
+ s. emit_enum_variant_arg ( 0 u) { ||
247
+ st ( v)
248
+ }
249
+ }
250
+ }
251
+ }
252
+ }
253
+ }
254
+
255
+ fn deserialize_option < D : deserializer , T > ( d : D , st : fn ( ) -> T ) -> option < T > {
256
+ d. read_enum ( "option" ) { ||
257
+ d. read_enum_variant { |i|
258
+ alt check i {
259
+ 0 u { // none
260
+ none
261
+ }
262
+ 1 u { // some(v)
263
+ some( d. read_enum_variant_arg ( 0 u) { ||
264
+ st ( )
265
+ } )
266
+ }
267
+ }
268
+ }
269
+ }
270
+ }
0 commit comments