@@ -56,6 +56,28 @@ public PersonalInformation AsPersonalInformation
56
56
}
57
57
}
58
58
59
+ /// <summary>
60
+ /// <para>Gets a value indicating whether this instance is UserDefinedTag</para>
61
+ /// </summary>
62
+ public bool IsUserDefinedTag
63
+ {
64
+ get
65
+ {
66
+ return this is UserDefinedTag ;
67
+ }
68
+ }
69
+
70
+ /// <summary>
71
+ /// <para>Gets this instance as a UserDefinedTag, or <c>null</c>.</para>
72
+ /// </summary>
73
+ public UserDefinedTag AsUserDefinedTag
74
+ {
75
+ get
76
+ {
77
+ return this as UserDefinedTag ;
78
+ }
79
+ }
80
+
59
81
/// <summary>
60
82
/// <para>Gets a value indicating whether this instance is Other</para>
61
83
/// </summary>
@@ -98,6 +120,12 @@ public override void EncodeFields(LabelType value, enc.IJsonWriter writer)
98
120
PersonalInformation . Encoder . EncodeFields ( ( PersonalInformation ) value , writer ) ;
99
121
return ;
100
122
}
123
+ if ( value is UserDefinedTag )
124
+ {
125
+ WriteProperty ( ".tag" , "user_defined_tag" , writer , enc . StringEncoder . Instance ) ;
126
+ UserDefinedTag . Encoder . EncodeFields ( ( UserDefinedTag ) value , writer ) ;
127
+ return ;
128
+ }
101
129
if ( value is Other )
102
130
{
103
131
WriteProperty ( ".tag" , "other" , writer , enc . StringEncoder . Instance ) ;
@@ -138,6 +166,8 @@ protected override LabelType Decode(string tag, enc.IJsonReader reader)
138
166
{
139
167
case "personal_information" :
140
168
return PersonalInformation . Decoder . DecodeFields ( reader ) ;
169
+ case "user_defined_tag" :
170
+ return UserDefinedTag . Decoder . DecodeFields ( reader ) ;
141
171
default :
142
172
return Other . Decoder . DecodeFields ( reader ) ;
143
173
}
@@ -217,6 +247,76 @@ protected override PersonalInformation Create()
217
247
#endregion
218
248
}
219
249
250
+ /// <summary>
251
+ /// <para>The user defined tag object</para>
252
+ /// </summary>
253
+ public sealed class UserDefinedTag : LabelType
254
+ {
255
+ #pragma warning disable 108
256
+
257
+ /// <summary>
258
+ /// <para>The encoder instance.</para>
259
+ /// </summary>
260
+ internal static enc . StructEncoder < UserDefinedTag > Encoder = new UserDefinedTagEncoder ( ) ;
261
+
262
+ /// <summary>
263
+ /// <para>The decoder instance.</para>
264
+ /// </summary>
265
+ internal static enc . StructDecoder < UserDefinedTag > Decoder = new UserDefinedTagDecoder ( ) ;
266
+
267
+ /// <summary>
268
+ /// <para>Initializes a new instance of the <see cref="UserDefinedTag" />
269
+ /// class.</para>
270
+ /// </summary>
271
+ private UserDefinedTag ( )
272
+ {
273
+ }
274
+
275
+ /// <summary>
276
+ /// <para>A singleton instance of UserDefinedTag</para>
277
+ /// </summary>
278
+ public static readonly UserDefinedTag Instance = new UserDefinedTag ( ) ;
279
+
280
+ #region Encoder class
281
+
282
+ /// <summary>
283
+ /// <para>Encoder for <see cref="UserDefinedTag" />.</para>
284
+ /// </summary>
285
+ private class UserDefinedTagEncoder : enc . StructEncoder < UserDefinedTag >
286
+ {
287
+ /// <summary>
288
+ /// <para>Encode fields of given value.</para>
289
+ /// </summary>
290
+ /// <param name="value">The value.</param>
291
+ /// <param name="writer">The writer.</param>
292
+ public override void EncodeFields ( UserDefinedTag value , enc . IJsonWriter writer )
293
+ {
294
+ }
295
+ }
296
+
297
+ #endregion
298
+
299
+ #region Decoder class
300
+
301
+ /// <summary>
302
+ /// <para>Decoder for <see cref="UserDefinedTag" />.</para>
303
+ /// </summary>
304
+ private class UserDefinedTagDecoder : enc . StructDecoder < UserDefinedTag >
305
+ {
306
+ /// <summary>
307
+ /// <para>Create a new instance of type <see cref="UserDefinedTag" />.</para>
308
+ /// </summary>
309
+ /// <returns>The struct instance.</returns>
310
+ protected override UserDefinedTag Create ( )
311
+ {
312
+ return UserDefinedTag . Instance ;
313
+ }
314
+
315
+ }
316
+
317
+ #endregion
318
+ }
319
+
220
320
/// <summary>
221
321
/// <para>The other object</para>
222
322
/// </summary>
0 commit comments