Exemple #1
0
 internal DataKind(
     string name,
     SerializerToJWriter internalSerializer,
     DeserializerFromJReader internalDeserializer)
 {
     _name = name;
     _internalSerializer   = internalSerializer;
     _internalDeserializer = internalDeserializer;
     _serializer           = item =>
     {
         var w = JWriter.New();
         if (item.Item is null)
         {
             var obj = w.Object();
             obj.Name("version").Int(item.Version);
             obj.Name("deleted").Bool(true);
             obj.End();
         }
         else
         {
             internalSerializer(item.Item, w);
         }
         return(w.GetString());
     };
     _deserializer = s =>
     {
         var r = JReader.FromString(s);
         return(_internalDeserializer(ref r));
     };
 }
Exemple #2
0
 /// <summary>
 /// Constructor for use in testing.
 /// </summary>
 /// <remarks>
 /// Application code will not create <see cref="DataKind"/> instances; the SDK maintains
 /// its own instances for the storable data types that it uses.
 /// </remarks>
 /// <param name="name">value for the <c>Name</c> property</param>
 /// <param name="serializer">function to convert an item to a serialized string form</param>
 /// <param name="deserializer">function to convert an item from a serialized string form</param>
 public DataKind(
     string name,
     Func <ItemDescriptor, string> serializer,
     Func <string, ItemDescriptor> deserializer)
 {
     _name                 = name;
     _serializer           = serializer;
     _deserializer         = deserializer;
     _internalSerializer   = null;
     _internalDeserializer = null;
 }