peerplays-fc/include/fc/json.hpp
2013-01-27 15:28:54 -05:00

54 lines
1.3 KiB
C++

#pragma once
#include <fc/string.hpp>
#include <fc/value.hpp>
#include <fc/value_cast.hpp>
#include <fc/vector_fwd.hpp>
namespace fc {
class istream;
class ostream;
class path;
namespace json {
string to_string( const value& o );
string to_pretty_string( const value& v );
value from_string( const string& s );
value from_string( const char* s, const char* e );
value from_string( const fc::vector<char>& v );
string escape_string( const string& );
string unescape_string( const string& );
void write( ostream& out, const value& val );
template<typename T>
void write( ostream& out, const T& val ) {
write( out, value(val) );
}
template<typename T>
string to_string( const T& o ) {
return json::to_string(value(o));
}
template<typename T>
string to_pretty_string( const T& o ) {
return json::to_pretty_string(value(o));
}
template<typename T>
T from_string( const string& s ) {
return value_cast<T>( from_string(s) );
}
value from_file( const fc::path& s );
template<typename T>
T from_file( const fc::path& s ) {
return value_cast<T>( fc::json::from_file(s) );
}
} // namespace json
} // fc