rename and move the _* private classes to _private namespace
authorSean Middleditch <sean@middleditch.us>
Sat, 16 Jan 2010 09:36:13 +0000 (01:36 -0800)
committerSean Middleditch <sean@middleditch.us>
Sat, 16 Jan 2010 09:36:13 +0000 (01:36 -0800)
janssonxx.h
janssonxx.tcc

index 2193ff1..c8a70ab 100644 (file)
@@ -21,203 +21,207 @@ namespace jansson {
 
        class Iterator;
        class Value;
-       class _ArrayProxy;
-       class _ObjectProxy;
 
-       // base class for JSON value interface
-       template <typename _Base>
-       class _ValueBase : public _Base {
-       public:
-               // empty constructor
-               _ValueBase() : _Base() {}
-
-               // copy constructor
-               _ValueBase(const _Base& base) : _Base(base) {}
+       namespace _private {
+               class ArrayProxy;
+               class ObjectProxy;
+
+               // base class for JSON value interface
+               template <typename _Base>
+               class ValueBase : public _Base {
+               public:
+                       // empty constructor
+                       ValueBase() : _Base() {}
+
+                       // copy constructor
+                       ValueBase(const _Base& base) : _Base(base) {}
 
-               // create reference to value
-               _ValueBase(json_t* json) : _Base(json) {}
-
-               // assignment operator
-               _ValueBase& operator=(const Value& value) { _Base::operator=(value); return *this; }
-
-               // check value type
-               bool is_undefined() const { return _Base::as_json() == 0; }
-               bool is_object() const { return json_is_object(_Base::as_json()); }
-               bool is_array() const { return json_is_array(_Base::as_json()); }
-               bool is_string() const { return json_is_string(_Base::as_json()); }
-               bool is_integer() const { return json_is_integer(_Base::as_json()); }
-               bool is_real() const { return json_is_real(_Base::as_json()); }
-               bool is_number() const { return json_is_number(_Base::as_json()); }
-               bool is_true() const { return json_is_true(_Base::as_json()); }
-               bool is_false() const { return json_is_false(_Base::as_json()); }
-               bool is_boolean() const { return json_is_boolean(_Base::as_json()); }
-               bool is_null() const { return json_is_null(_Base::as_json()); }
-
-               // get size of array or object
-               inline unsigned int size() const;
-
-               // get value at array index (const version)
-               inline const Value at(unsigned int index) const;
-
-               inline const Value operator[](signed int index) const;
-               inline const Value operator[](unsigned int index) const;
-               inline const Value operator[](signed short index) const;
-               inline const Value operator[](unsigned short index) const;
-               inline const Value operator[](signed long index) const;
-               inline const Value operator[](unsigned long index) const;
-
-               // get value at array index (non-const version)
-               inline _ValueBase<_ArrayProxy> at(unsigned int index);
-
-               inline _ValueBase<_ArrayProxy> operator[](signed int index);
-               inline _ValueBase<_ArrayProxy> operator[](unsigned int index);
-               inline _ValueBase<_ArrayProxy> operator[](signed short index);
-               inline _ValueBase<_ArrayProxy> operator[](unsigned short index);
-               inline _ValueBase<_ArrayProxy> operator[](signed long index);
-               inline _ValueBase<_ArrayProxy> operator[](unsigned long index);
-
-               // get object property (const version)
-               inline const Value get(const char* key) const;
-
-               inline const Value get(const std::string& key) const;
-               inline const Value operator[](const char* key) const;
-               inline const Value operator[](const std::string& key) const;
-
-               // get object property (non-const version)
-               inline _ValueBase<_ObjectProxy> get(const char* key);
-
-               inline _ValueBase<_ObjectProxy> get(const std::string& key);
-               inline _ValueBase<_ObjectProxy> operator[](const char* key);
-               inline _ValueBase<_ObjectProxy> operator[](const std::string& key);
-
-               // clear all array/object values
-               inline void clear();
-
-               // get value cast to specified type
-               inline const char* as_cstring() const;
-               inline std::string as_string() const;
-               inline int as_integer() const;
-               inline double as_real() const;
-               inline double as_number() const;
-               inline bool as_boolean() const;
-
-               // set an object property (converts value to object is not one already)
-               inline _Base& set_key(const char* key, const Value& value);
-
-               inline _Base& set_key(const std::string& key, const Value& value);
-
-               // set an array index (converts value to object is not one already)
-               inline _Base& set_at(unsigned int index, const Value& value);
-
-               // delete an object key
-               inline _Base& del_key(const char* key);
-
-               inline _Base& del_key(const std::string& key);
-
-               // delete an item from an array by index
-               inline _Base& del_at(unsigned int index);
-
-               // insert an item into an array at a given index
-               inline _Base& insert_at(unsigned int index, const Value& value);
-       };
+                       // create reference to value
+                       ValueBase(json_t* json) : _Base(json) {}
 
-       // represents any JSON value, private base
-       class _Value {
-       public:
-               // construct new Value with an undefined value
-               _Value() : _value(0) {}
-
-               // copy constructor
-               _Value(const _Value& value) : _value(json_incref(value._value)) {}
-
-               // make a reference to an existing json_t value
-               explicit _Value(json_t* value) : _value(json_incref(value)) {}
+                       // assignment operator
+                       ValueBase& operator=(const Value& value) { _Base::operator=(value); return *this; }
+
+                       // check value type
+                       bool is_undefined() const { return _Base::as_json() == 0; }
+                       bool is_object() const { return json_is_object(_Base::as_json()); }
+                       bool is_array() const { return json_is_array(_Base::as_json()); }
+                       bool is_string() const { return json_is_string(_Base::as_json()); }
+                       bool is_integer() const { return json_is_integer(_Base::as_json()); }
+                       bool is_real() const { return json_is_real(_Base::as_json()); }
+                       bool is_number() const { return json_is_number(_Base::as_json()); }
+                       bool is_true() const { return json_is_true(_Base::as_json()); }
+                       bool is_false() const { return json_is_false(_Base::as_json()); }
+                       bool is_boolean() const { return json_is_boolean(_Base::as_json()); }
+                       bool is_null() const { return json_is_null(_Base::as_json()); }
+
+                       // get size of array or object
+                       inline unsigned int size() const;
+
+                       // get value at array index (const version)
+                       inline const Value at(unsigned int index) const;
+
+                       inline const Value operator[](signed int index) const;
+                       inline const Value operator[](unsigned int index) const;
+                       inline const Value operator[](signed short index) const;
+                       inline const Value operator[](unsigned short index) const;
+                       inline const Value operator[](signed long index) const;
+                       inline const Value operator[](unsigned long index) const;
+
+                       // get value at array index (non-const version)
+                       inline ValueBase<ArrayProxy> at(unsigned int index);
+
+                       inline ValueBase<ArrayProxy> operator[](signed int index);
+                       inline ValueBase<ArrayProxy> operator[](unsigned int index);
+                       inline ValueBase<ArrayProxy> operator[](signed short index);
+                       inline ValueBase<ArrayProxy> operator[](unsigned short index);
+                       inline ValueBase<ArrayProxy> operator[](signed long index);
+                       inline ValueBase<ArrayProxy> operator[](unsigned long index);
+
+                       // get object property (const version)
+                       inline const Value get(const char* key) const;
+
+                       inline const Value get(const std::string& key) const;
+                       inline const Value operator[](const char* key) const;
+                       inline const Value operator[](const std::string& key) const;
+
+                       // get object property (non-const version)
+                       inline ValueBase<ObjectProxy> get(const char* key);
+
+                       inline ValueBase<ObjectProxy> get(const std::string& key);
+                       inline ValueBase<ObjectProxy> operator[](const char* key);
+                       inline ValueBase<ObjectProxy> operator[](const std::string& key);
+
+                       // clear all array/object values
+                       inline void clear();
+
+                       // get value cast to specified type
+                       inline const char* as_cstring() const;
+                       inline std::string as_string() const;
+                       inline int as_integer() const;
+                       inline double as_real() const;
+                       inline double as_number() const;
+                       inline bool as_boolean() const;
+
+                       // set an object property (converts value to object is not one already)
+                       inline _Base& set_key(const char* key, const Value& value);
+
+                       inline _Base& set_key(const std::string& key, const Value& value);
+
+                       // set an array index (converts value to object is not one already)
+                       inline _Base& set_at(unsigned int index, const Value& value);
+
+                       // delete an object key
+                       inline _Base& del_key(const char* key);
+
+                       inline _Base& del_key(const std::string& key);
+
+                       // delete an item from an array by index
+                       inline _Base& del_at(unsigned int index);
+
+                       // insert an item into an array at a given index
+                       inline _Base& insert_at(unsigned int index, const Value& value);
+               };
+
+               // represents any JSON value, private base
+               class Basic {
+               public:
+                       // construct new Value with an undefined value
+                       Basic() : _value(0) {}
+
+                       // copy constructor
+                       Basic(const Basic& value) : _value(json_incref(value._value)) {}
+
+                       // make a reference to an existing json_t value
+                       explicit Basic(json_t* value) : _value(json_incref(value)) {}
+
+                       // free Value resources
+                       ~Basic() { json_decref(_value); }
+
+                       // copy an existing Value
+                       Basic& operator=(const Basic& e) {
+                               if (&e != this) {
+                                       json_decref(_value);
+                                       _value = json_incref(e._value);
+                               }
+                               return *this;
+                       }
 
-               // free Value resources
-               ~_Value() { json_decref(_value); }
+                       // get the underlying json_t
+                       json_t* as_json() const { return _value; }
 
-               // copy an existing Value
-               _Value& operator=(const _Value& e) {
-                       if (&e != this) {
-                               json_decref(_value);
-                               _value = json_incref(e._value);
+               protected:
+                       // take ownership of a json_t (does not increase reference count)
+                       static Basic _take(json_t* json) {
+                               Basic v;
+                               v._value = json;
+                               return v;
                        }
-                       return *this;
-               }
 
-               // get the underlying json_t
-               json_t* as_json() const { return _value; }
+               private:
+                       // internal value pointer
+                       json_t* _value;
+               };
 
-       protected:
-               // take ownership of a json_t (does not increase reference count)
-               static _Value _take(json_t* json) {
-                       _Value v;
-                       v._value = json;
-                       return v;
-               }
+               // proxies an array element
+               class ArrayProxy {
+               public:
+                       // constructor
+                       ArrayProxy(json_t* array, unsigned int index) : _array(array), _index(index) {}
 
-       private:
-               // internal value pointer
-               json_t* _value;
-       };
+                       // assign to the proxied element
+                       inline ArrayProxy& operator=(const Value& value);
 
-       // proxies an array element
-       class _ArrayProxy {
-       public:
-               // constructor
-               _ArrayProxy(json_t* array, unsigned int index) : _array(array), _index(index) {}
+                       // get the proxied element
+                       json_t* as_json() const { return json_array_get(_array, _index); }
 
-               // assign to the proxied element
-               inline _ArrayProxy& operator=(const Value& value);
+               private:
+                       // array object we wrap
+                       json_t* _array;
 
-               // get the proxied element
-               json_t* as_json() const { return json_array_get(_array, _index); }
+                       // index of property
+                       unsigned int _index;
+               };
 
-       private:
-               // array object we wrap
-               json_t* _array;
+               // proxies an object property
+               class ObjectProxy {
+               public:
+                       // constructor
+                       ObjectProxy(json_t* array, const char* key) : _object(array), _key(key) {}
 
-               // index of property
-               unsigned int _index;
-       };
+                       // assign to the proxied element
+                       inline ObjectProxy& operator=(const Value& value);
 
-       // proxies an object property
-       class _ObjectProxy {
-       public:
-               // constructor
-               _ObjectProxy(json_t* array, const char* key) : _object(array), _key(key) {}
+                       // get the proxied element
+                       json_t* as_json() const { return json_object_get(_object, _key); }
 
-               // assign to the proxied element
-               inline _ObjectProxy& operator=(const Value& value);
+               private:
+                       // array object we wrap
+                       json_t* _object;
 
-               // get the proxied element
-               json_t* as_json() const { return json_object_get(_object, _key); }
+                       // key of property
+                       const char* _key;
+               };
 
-       private:
-               // array object we wrap
-               json_t* _object;
-
-               // key of property
-               const char* _key;
-       };
+       } // namespace jansson::_private
 
        // represents any JSON value
-       class Value : public _ValueBase<_Value> {
+       class Value : public _private::ValueBase<_private::Basic> {
        public:
                // empty constructor
-               Value() : _ValueBase<_Value>() {}
+               Value() : _private::ValueBase<_private::Basic>() {}
 
                // copy constructor for base
-               Value(const _Value& value) : _ValueBase<_Value>(value) {}
+               Value(const _private::Basic& value) : _private::ValueBase<_private::Basic>(value) {}
        
                // copy constructor for base
-               Value(const _ValueBase<_Value>& value) : _ValueBase<_Value>(value) {}
+               Value(const _private::ValueBase<_private::Basic>& value) : _private::ValueBase<_private::Basic>(value) {}
 
                // copy constructor
-               Value(const Value& value) : _ValueBase<_Value>(value) {}
+               Value(const Value& value) : _private::ValueBase<_private::Basic>(value) {}
 
                // create reference to value
-               explicit Value(json_t* json) : _ValueBase<_Value>(json) {}
+               explicit Value(json_t* json) : _private::ValueBase<_private::Basic>(json) {}
 
                // construct Value from input
                static inline Value from(const char* value) { return Value::_take(json_string(value)); }
@@ -271,7 +275,7 @@ namespace jansson {
                }
 
                // construct a new iterator for a given object
-               Iterator(const _ValueBase<_ObjectProxy>& value) : _object(value.as_json()), _iter(0) {
+               Iterator(const _private::ValueBase<_private::ObjectProxy>& value) : _object(value.as_json()), _iter(0) {
                        _iter = json_object_iter(_object.as_json());
                }
 
index 27ed239..0bc505b 100644 (file)
@@ -1,6 +1,6 @@
 // get size of array or object
 template <typename _Base>
-unsigned int jansson::_ValueBase<_Base>::size() const {
+unsigned int jansson::_private::ValueBase<_Base>::size() const {
        if (is_object())
                return json_object_size(_Base::as_json());
        else
@@ -9,71 +9,71 @@ unsigned int jansson::_ValueBase<_Base>::size() const {
 
 // get value at array index (const version)
 template <typename _Base>
-const jansson::Value jansson::_ValueBase<_Base>::at(unsigned int index) const {
+const jansson::Value jansson::_private::ValueBase<_Base>::at(unsigned int index) const {
        return jansson::Value(json_array_get(_Base::as_json(), index));
 }
 
 template <typename _Base>
-const jansson::Value jansson::_ValueBase<_Base>::operator[](signed int index) const { return at(index); }
+const jansson::Value jansson::_private::ValueBase<_Base>::operator[](signed int index) const { return at(index); }
 template <typename _Base>
-const jansson::Value jansson::_ValueBase<_Base>::operator[](unsigned int index) const { return at(index); }
+const jansson::Value jansson::_private::ValueBase<_Base>::operator[](unsigned int index) const { return at(index); }
 template <typename _Base>
-const jansson::Value jansson::_ValueBase<_Base>::operator[](signed short index) const { return at(index); }
+const jansson::Value jansson::_private::ValueBase<_Base>::operator[](signed short index) const { return at(index); }
 template <typename _Base>
-const jansson::Value jansson::_ValueBase<_Base>::operator[](unsigned short index) const { return at(index); }
+const jansson::Value jansson::_private::ValueBase<_Base>::operator[](unsigned short index) const { return at(index); }
 template <typename _Base>
-const jansson::Value jansson::_ValueBase<_Base>::operator[](signed long index) const { return at(index); }
+const jansson::Value jansson::_private::ValueBase<_Base>::operator[](signed long index) const { return at(index); }
 template <typename _Base>
-const jansson::Value jansson::_ValueBase<_Base>::operator[](unsigned long index) const { return at(index); }
+const jansson::Value jansson::_private::ValueBase<_Base>::operator[](unsigned long index) const { return at(index); }
 
 // get value at array index (non-const version)
 template <typename _Base>
-jansson::_ValueBase<jansson::_ArrayProxy> jansson::_ValueBase<_Base>::at(unsigned int index) {
-       return _ArrayProxy(_Base::as_json(), index);
+jansson::_private::ValueBase<jansson::_private::ArrayProxy> jansson::_private::ValueBase<_Base>::at(unsigned int index) {
+       return ArrayProxy(_Base::as_json(), index);
 }
 
 template <typename _Base>
-jansson::_ValueBase<jansson::_ArrayProxy> jansson::_ValueBase<_Base>::operator[](signed int index) { return at(index); }
+jansson::_private::ValueBase<jansson::_private::ArrayProxy> jansson::_private::ValueBase<_Base>::operator[](signed int index) { return at(index); }
 template <typename _Base>
-jansson::_ValueBase<jansson::_ArrayProxy> jansson::_ValueBase<_Base>::operator[](unsigned int index) { return at(index); }
+jansson::_private::ValueBase<jansson::_private::ArrayProxy> jansson::_private::ValueBase<_Base>::operator[](unsigned int index) { return at(index); }
 template <typename _Base>
-jansson::_ValueBase<jansson::_ArrayProxy> jansson::_ValueBase<_Base>::operator[](signed short index) { return at(index); }
+jansson::_private::ValueBase<jansson::_private::ArrayProxy> jansson::_private::ValueBase<_Base>::operator[](signed short index) { return at(index); }
 template <typename _Base>
-jansson::_ValueBase<jansson::_ArrayProxy> jansson::_ValueBase<_Base>::operator[](unsigned short index) { return at(index); }
+jansson::_private::ValueBase<jansson::_private::ArrayProxy> jansson::_private::ValueBase<_Base>::operator[](unsigned short index) { return at(index); }
 template <typename _Base>
-jansson::_ValueBase<jansson::_ArrayProxy> jansson::_ValueBase<_Base>::operator[](signed long index) { return at(index); }
+jansson::_private::ValueBase<jansson::_private::ArrayProxy> jansson::_private::ValueBase<_Base>::operator[](signed long index) { return at(index); }
 template <typename _Base>
-jansson::_ValueBase<jansson::_ArrayProxy> jansson::_ValueBase<_Base>::operator[](unsigned long index) { return at(index); }
+jansson::_private::ValueBase<jansson::_private::ArrayProxy> jansson::_private::ValueBase<_Base>::operator[](unsigned long index) { return at(index); }
 
 // get object property (const version)
 template <typename _Base>
-const jansson::Value jansson::_ValueBase<_Base>::get(const char* key) const {
+const jansson::Value jansson::_private::ValueBase<_Base>::get(const char* key) const {
        return jansson::Value(json_object_get(_Base::as_json(), key));
 }
 
 template <typename _Base>
-const jansson::Value jansson::_ValueBase<_Base>::get(const std::string& key) const { return get(key.c_str()); }
+const jansson::Value jansson::_private::ValueBase<_Base>::get(const std::string& key) const { return get(key.c_str()); }
 template <typename _Base>
-const jansson::Value jansson::_ValueBase<_Base>::operator[](const char* key) const { return get(key); }
+const jansson::Value jansson::_private::ValueBase<_Base>::operator[](const char* key) const { return get(key); }
 template <typename _Base>
-const jansson::Value jansson::_ValueBase<_Base>::operator[](const std::string& key) const { return get(key.c_str()); }
+const jansson::Value jansson::_private::ValueBase<_Base>::operator[](const std::string& key) const { return get(key.c_str()); }
 
 // get object property (non-const version)
 template <typename _Base>
-jansson::_ValueBase<jansson::_ObjectProxy> jansson::_ValueBase<_Base>::get(const char* key) {
-       return _ObjectProxy(_Base::as_json(), key);
+jansson::_private::ValueBase<jansson::_private::ObjectProxy> jansson::_private::ValueBase<_Base>::get(const char* key) {
+       return ObjectProxy(_Base::as_json(), key);
 }
 
 template <typename _Base>
-jansson::_ValueBase<jansson::_ObjectProxy> jansson::_ValueBase<_Base>::get(const std::string& key) { return get(key.c_str()); }
+jansson::_private::ValueBase<jansson::_private::ObjectProxy> jansson::_private::ValueBase<_Base>::get(const std::string& key) { return get(key.c_str()); }
 template <typename _Base>
-jansson::_ValueBase<jansson::_ObjectProxy> jansson::_ValueBase<_Base>::operator[](const char* key) { return get(key); }
+jansson::_private::ValueBase<jansson::_private::ObjectProxy> jansson::_private::ValueBase<_Base>::operator[](const char* key) { return get(key); }
 template <typename _Base>
-jansson::_ValueBase<jansson::_ObjectProxy> jansson::_ValueBase<_Base>::operator[](const std::string& key) { return get(key.c_str()); }
+jansson::_private::ValueBase<jansson::_private::ObjectProxy> jansson::_private::ValueBase<_Base>::operator[](const std::string& key) { return get(key.c_str()); }
 
 // clear all array/object values
 template <typename _Base>
-void jansson::_ValueBase<_Base>::clear() {
+void jansson::_private::ValueBase<_Base>::clear() {
        if (is_object())
                json_object_clear(_Base::as_json());
        else
@@ -82,36 +82,36 @@ void jansson::_ValueBase<_Base>::clear() {
 
 // get value cast to specified type
 template <typename _Base>
-const char* jansson::_ValueBase<_Base>::as_cstring() const { return json_string_value(_Base::as_json()); }
+const char* jansson::_private::ValueBase<_Base>::as_cstring() const { return json_string_value(_Base::as_json()); }
 template <typename _Base>
-std::string jansson::_ValueBase<_Base>::as_string() const {
+std::string jansson::_private::ValueBase<_Base>::as_string() const {
        const char* tmp = as_cstring();
        return tmp == 0 ? "" : tmp;
 }
 template <typename _Base>
-int jansson::_ValueBase<_Base>::as_integer() const { return json_integer_value(_Base::as_json()); }
+int jansson::_private::ValueBase<_Base>::as_integer() const { return json_integer_value(_Base::as_json()); }
 template <typename _Base>
-double jansson::_ValueBase<_Base>::as_real() const { return json_real_value(_Base::as_json()); }
+double jansson::_private::ValueBase<_Base>::as_real() const { return json_real_value(_Base::as_json()); }
 template <typename _Base>
-double jansson::_ValueBase<_Base>::as_number() const { return json_number_value(_Base::as_json()); }
+double jansson::_private::ValueBase<_Base>::as_number() const { return json_number_value(_Base::as_json()); }
 template <typename _Base>
-bool jansson::_ValueBase<_Base>::as_boolean() const { return is_true(); }
+bool jansson::_private::ValueBase<_Base>::as_boolean() const { return is_true(); }
 
 // set an object property (converts value to object is not one already)
 template <typename _Base>
- _Base& jansson::_ValueBase<_Base>::set_key(const char* key, const jansson::Value& value) {
+ _Base& jansson::_private::ValueBase<_Base>::set_key(const char* key, const jansson::Value& value) {
        json_object_set(_Base::as_json(), key, value._Base::as_json());
        return *this;
 }
 
 template <typename _Base>
- _Base& jansson::_ValueBase<_Base>::set_key(const std::string& key, const jansson::Value& value) {
+ _Base& jansson::_private::ValueBase<_Base>::set_key(const std::string& key, const jansson::Value& value) {
        return set_key(key.c_str(), value);
 }
 
 // set an array index (converts value to object is not one already)
 template <typename _Base>
- _Base& jansson::_ValueBase<_Base>::set_at(unsigned int index, const jansson::Value& value) {
+ _Base& jansson::_private::ValueBase<_Base>::set_at(unsigned int index, const jansson::Value& value) {
        if (index == size())
                json_array_append(_Base::as_json(), value._Base::as_json());
        else
@@ -121,38 +121,38 @@ template <typename _Base>
 
 // delete an object key
 template <typename _Base>
- _Base& jansson::_ValueBase<_Base>::del_key(const char* key) {
+ _Base& jansson::_private::ValueBase<_Base>::del_key(const char* key) {
        json_object_del(_Base::as_json(), key);
        return *this;
 }
 
 template <typename _Base>
- _Base& jansson::_ValueBase<_Base>::del_key(const std::string& key) {
+ _Base& jansson::_private::ValueBase<_Base>::del_key(const std::string& key) {
        return del_key(key.c_str());
 }
 
 // delete an item from an array by index
 template <typename _Base>
- _Base& jansson::_ValueBase<_Base>::del_at(unsigned int index) {
+ _Base& jansson::_private::ValueBase<_Base>::del_at(unsigned int index) {
        json_array_remove(_Base::as_json(), index);
        return *this;
 }
 
 // insert an item into an array at a given index
 template <typename _Base>
- _Base& jansson::_ValueBase<_Base>::insert_at(unsigned int index, const jansson::Value& value) {
+ _Base& jansson::_private::ValueBase<_Base>::insert_at(unsigned int index, const jansson::Value& value) {
        json_array_insert(_Base::as_json(), index, value._Base::as_json());
        return *this;
 }
 
 // assign value to proxied array element
-jansson::_ArrayProxy& jansson::_ArrayProxy::operator=(const Value& value) {
+jansson::_private::ArrayProxy& jansson::_private::ArrayProxy::operator=(const Value& value) {
        json_array_set(_array, _index, value.as_json());
        return *this;
 }
 
 // assign value to proxied object property
-jansson::_ObjectProxy& jansson::_ObjectProxy::operator=(const Value& value) {
+jansson::_private::ObjectProxy& jansson::_private::ObjectProxy::operator=(const Value& value) {
        json_object_set(_object, _key, value.as_json());
        return *this;
 }