Advertisement
Guest User

Untitled

a guest
Dec 29th, 2018
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.20 KB | None | 0 0
  1. #pragma once
  2.  
  3. #include "common.h"
  4. #include "value.h"
  5.  
  6. namespace fn {
  7.  
  8.     class OutputStream;
  9.  
  10.     namespace json {
  11.  
  12.         class ValueSerializer
  13.         {
  14.         public:
  15.             virtual bool valueNeedsTransform(const Value & value) = 0;
  16.  
  17.             virtual Value transformValue(const Value & value) = 0;
  18.  
  19.             virtual ~ValueSerializer() = default;
  20.         };
  21.  
  22.         FN_EXPORT void serialize(const Value & value, OutputStream & outputStream, bool pretty);
  23.         FN_EXPORT void serialize(const Value & value, OutputStream & outputStream, bool pretty,
  24.                                  ValueSerializer & serializer);
  25.  
  26.         //
  27.         //
  28.         //
  29.  
  30.         class ValueDeserializer
  31.         {
  32.         public:
  33.             virtual Value transformValue(Value value) = 0;
  34.             virtual ~ValueDeserializer() = default;
  35.         };
  36.  
  37.         FN_EXPORT Value deserialize(StringView str, const NativePath & path = NativePath());
  38.         FN_EXPORT Value deserialize(StringView str,
  39.                                     ValueDeserializer & deserializer,
  40.                                     const NativePath & path = NativePath());
  41.     } // namespace json
  42. } // namespace fn
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement