7 class mutable_variant_object;
34 const string&
key()
const;
45 typedef std::vector< entry >::const_iterator
iterator;
53 iterator
begin()
const;
56 iterator
find(
const string&
key )
const;
57 iterator
find(
const char*
key )
const;
71 :_key_value(
std::make_shared<
std::vector<
entry> >() )
88 std::shared_ptr< std::vector< entry > > _key_value;
123 iterator
begin()
const;
126 iterator
find(
const string&
key )
const;
127 iterator
find(
const char*
key )
const;
141 void reserve(
size_t s);
145 void erase(
const string&
key );
150 iterator
find(
const string&
key );
151 iterator
find(
const char*
key );
175 _FC_ASSERT( max_depth > 0,
"Recursion depth exceeded!" );
176 set( std::move(key),
variant( std::forward<T>(var), max_depth - 1 ) );
192 :_key_value( new
std::vector<entry>() )
203 :_key_value( new
std::vector<entry>() )
205 set( std::move(key),
variant(std::forward<T>(val)) );
216 std::unique_ptr< std::vector< entry > > _key_value;
228 if( _reached_depth_limit )
235 v =
variant( std::forward<T>(var), _max_depth );
239 if( !_skip_on_exception )
241 v =
variant(
"[ERROR: Caught exception while converting data to variant]" );
243 set( std::move(key), *v );
249 const uint32_t _max_depth;
250 const bool _reached_depth_limit;
251 const bool _skip_on_exception;
mutable_variant_object(string key, T &&val)
iterator find(const string &key) const
An order-perserving dictionary of variant's.
variant_object & get_object()
bool contains(const char *key) const
variant_object(string key, T &&val)
void to_variant(const flat_set< T, A... > &var, variant &vo, uint32_t _max_depth)
const variant & operator[](const string &key) const
stores null, int64, uint64, double, bool, string, std::vector<variant>, and variant_object's.
mutable_variant_object(T &&v)
variant_object::entry entry
a key/value pair
limited_mutable_variant_object & operator()(string key, T &&var)
std::vector< entry >::const_iterator iterator
const variant & value() const
#define _FC_ASSERT(cond, msg)
entry & operator=(const entry &)
friend class mutable_variant_object
std::vector< entry >::iterator iterator
void from_variant(const variant &var, flat_set< T, A... > &vo, uint32_t _max_depth)
std::vector< entry >::const_iterator const_iterator
mutable_variant_object & operator()(string key, T &&var, uint32_t max_depth)
An order-perserving dictionary of variant's.
const string & key() const