Update rexylib
This commit is contained in:
parent
5c261ed7ed
commit
01f48a394d
@ -75,13 +75,13 @@ namespace rjp{
|
|||||||
object& operator=(object&&) = default;
|
object& operator=(object&&) = default;
|
||||||
|
|
||||||
template<class Val>
|
template<class Val>
|
||||||
member<std::decay_t<Val>> add(const rexy::string_base<char>& key, typename std::decay_t<Val>::underlying_type t){
|
member<std::decay_t<Val>> add(const rexy::string_view& key, typename std::decay_t<Val>::underlying_type t){
|
||||||
RJP_value* newmem = add_member_impl(key);
|
RJP_value* newmem = add_member_impl(key);
|
||||||
detail::set_to_underlying<std::decay_t<Val>>(newmem, t);
|
detail::set_to_underlying<std::decay_t<Val>>(newmem, t);
|
||||||
return create_unmanaged(newmem);
|
return create_unmanaged(newmem);
|
||||||
}
|
}
|
||||||
template<class Val = null>
|
template<class Val = null>
|
||||||
member<std::decay_t<Val>> add(const rexy::string_base<char>& key){
|
member<std::decay_t<Val>> add(const rexy::string_view& key){
|
||||||
RJP_value* newmem = add_member_impl(key);
|
RJP_value* newmem = add_member_impl(key);
|
||||||
if constexpr(std::is_same<std::decay_t<Val>,rjp::array>::value)
|
if constexpr(std::is_same<std::decay_t<Val>,rjp::array>::value)
|
||||||
set_array_value(newmem);
|
set_array_value(newmem);
|
||||||
@ -93,11 +93,11 @@ namespace rjp{
|
|||||||
detail::set_to_underlying<std::decay_t<Val>>(newmem, 0);
|
detail::set_to_underlying<std::decay_t<Val>>(newmem, 0);
|
||||||
return create_unmanaged(newmem);
|
return create_unmanaged(newmem);
|
||||||
}
|
}
|
||||||
member<string_val> add(const rexy::string_base<char>& key, const RJP_string&);
|
member<string_val> add(const rexy::string_view& key, const RJP_string&);
|
||||||
member<string_val> add(const rexy::string_base<char>& key, RJP_string&&);
|
member<string_val> add(const rexy::string_view& key, RJP_string&&);
|
||||||
member<string_val> add(const rexy::string_base<char>& key, const char*, RJP_index len = 0);
|
member<string_val> add(const rexy::string_view& key, const char*, RJP_index len = 0);
|
||||||
member<string_val> add(const rexy::string_base<char>& key, const rexy::string_base<char>&);
|
member<string_val> add(const rexy::string_view& key, const rexy::string_view&);
|
||||||
member<string_val> add(const rexy::string_base<char>& key, string&&);
|
member<string_val> add(const rexy::string_view& key, string&&);
|
||||||
|
|
||||||
template<class Val>
|
template<class Val>
|
||||||
member<std::decay_t<Val>> add(string&& key, typename std::decay_t<Val>::underlying_type t){
|
member<std::decay_t<Val>> add(string&& key, typename std::decay_t<Val>::underlying_type t){
|
||||||
@ -121,13 +121,13 @@ namespace rjp{
|
|||||||
member<string_val> add(string&& key, const RJP_string&);
|
member<string_val> add(string&& key, const RJP_string&);
|
||||||
member<string_val> add(string&& key, RJP_string&&);
|
member<string_val> add(string&& key, RJP_string&&);
|
||||||
member<string_val> add(string&& key, const char*, RJP_index len = 0);
|
member<string_val> add(string&& key, const char*, RJP_index len = 0);
|
||||||
member<string_val> add(string&& key, const rexy::string_base<char>&);
|
member<string_val> add(string&& key, const rexy::string_view&);
|
||||||
member<string_val> add(string&& key, string&&);
|
member<string_val> add(string&& key, string&&);
|
||||||
|
|
||||||
value remove(const rexy::string_base<char>& key);
|
value remove(const rexy::string_view& key);
|
||||||
value& remove(value& val);
|
value& remove(value& val);
|
||||||
|
|
||||||
void destroy(const rexy::string_base<char>& key);
|
void destroy(const rexy::string_view& key);
|
||||||
void destroy(value&& val);
|
void destroy(value&& val);
|
||||||
|
|
||||||
bool has_child(const value&);
|
bool has_child(const value&);
|
||||||
@ -142,10 +142,10 @@ namespace rjp{
|
|||||||
|
|
||||||
size_type size(void)const;
|
size_type size(void)const;
|
||||||
|
|
||||||
value search(const rexy::string_base<char>& key)const;
|
value search(const rexy::string_view& key)const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
RJP_value* add_member_impl(const rexy::string_base<char>& key);
|
RJP_value* add_member_impl(const rexy::string_view& key);
|
||||||
RJP_value* add_member_impl(string&& key);
|
RJP_value* add_member_impl(string&& key);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
#define RJP_STRING_VAL_HPP
|
#define RJP_STRING_VAL_HPP
|
||||||
|
|
||||||
#include <rjp.h>
|
#include <rjp.h>
|
||||||
#include <rexy/string_base.hpp>
|
#include <rexy/string.hpp>
|
||||||
#include "string.hpp"
|
#include "string.hpp"
|
||||||
#include "value.hpp"
|
#include "value.hpp"
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ namespace rjp{
|
|||||||
using underlying_type = RJP_string;
|
using underlying_type = RJP_string;
|
||||||
public:
|
public:
|
||||||
using value::value;
|
using value::value;
|
||||||
string_val(const rexy::string_base<char>& str);
|
string_val(const rexy::string_view& str);
|
||||||
string_val(string&& str);
|
string_val(string&& str);
|
||||||
string_val(void);
|
string_val(void);
|
||||||
string_val(const value& val);
|
string_val(const value& val);
|
||||||
|
|||||||
@ -39,27 +39,27 @@ namespace rjp{
|
|||||||
if(rjp_value_type(m_value) != rjp_json_object)
|
if(rjp_value_type(m_value) != rjp_json_object)
|
||||||
rjp_set_object(m_value);
|
rjp_set_object(m_value);
|
||||||
}
|
}
|
||||||
member<string_val> object::add(const rexy::string_base<char>& key, const RJP_string& s){
|
member<string_val> object::add(const rexy::string_view& key, const RJP_string& s){
|
||||||
RJP_value* newmem = rjp_new_member(m_value, key.get(), key.length());
|
RJP_value* newmem = rjp_new_member(m_value, key.get(), key.length());
|
||||||
rjp_set_string(newmem, s.value, s.length);
|
rjp_set_string(newmem, s.value, s.length);
|
||||||
return create_unmanaged(newmem);
|
return create_unmanaged(newmem);
|
||||||
}
|
}
|
||||||
member<string_val> object::add(const rexy::string_base<char>& key, RJP_string&& s){
|
member<string_val> object::add(const rexy::string_view& key, RJP_string&& s){
|
||||||
RJP_value* newmem = rjp_new_member(m_value, key.get(), key.length());
|
RJP_value* newmem = rjp_new_member(m_value, key.get(), key.length());
|
||||||
rjp_set_string_steal(newmem, s.value, s.length);
|
rjp_set_string_steal(newmem, s.value, s.length);
|
||||||
return create_unmanaged(newmem);
|
return create_unmanaged(newmem);
|
||||||
}
|
}
|
||||||
member<string_val> object::add(const rexy::string_base<char>& key, const char* s, RJP_index len){
|
member<string_val> object::add(const rexy::string_view& key, const char* s, RJP_index len){
|
||||||
RJP_value* newmem = rjp_new_member(m_value, key.get(), key.length());
|
RJP_value* newmem = rjp_new_member(m_value, key.get(), key.length());
|
||||||
rjp_set_string(newmem, s, len);
|
rjp_set_string(newmem, s, len);
|
||||||
return create_unmanaged(newmem);
|
return create_unmanaged(newmem);
|
||||||
}
|
}
|
||||||
member<string_val> object::add(const rexy::string_base<char>& key, const rexy::string_base<char>& s){
|
member<string_val> object::add(const rexy::string_view& key, const rexy::string_view& s){
|
||||||
RJP_value* newmem = rjp_new_member(m_value, key.get(), key.length());
|
RJP_value* newmem = rjp_new_member(m_value, key.get(), key.length());
|
||||||
rjp_set_string(newmem, s.get(), s.length());
|
rjp_set_string(newmem, s.get(), s.length());
|
||||||
return create_unmanaged(newmem);
|
return create_unmanaged(newmem);
|
||||||
}
|
}
|
||||||
member<string_val> object::add(const rexy::string_base<char>& key, string&& s){
|
member<string_val> object::add(const rexy::string_view& key, string&& s){
|
||||||
RJP_value* newmem = rjp_new_member(m_value, key.get(), key.length());
|
RJP_value* newmem = rjp_new_member(m_value, key.get(), key.length());
|
||||||
auto len = s.length();
|
auto len = s.length();
|
||||||
rjp_set_string_steal(newmem, s.release(), len);
|
rjp_set_string_steal(newmem, s.release(), len);
|
||||||
@ -81,7 +81,7 @@ namespace rjp{
|
|||||||
rjp_set_string(newmem, s, len);
|
rjp_set_string(newmem, s, len);
|
||||||
return create_unmanaged(newmem);
|
return create_unmanaged(newmem);
|
||||||
}
|
}
|
||||||
member<string_val> object::add(string&& key, const rexy::string_base<char>& s){
|
member<string_val> object::add(string&& key, const rexy::string_view& s){
|
||||||
RJP_value* newmem = rjp_new_member_steal_key(m_value, key.get(), key.length());
|
RJP_value* newmem = rjp_new_member_steal_key(m_value, key.get(), key.length());
|
||||||
rjp_set_string(newmem, s.get(), s.length());
|
rjp_set_string(newmem, s.get(), s.length());
|
||||||
return create_unmanaged(newmem);
|
return create_unmanaged(newmem);
|
||||||
@ -93,7 +93,7 @@ namespace rjp{
|
|||||||
return create_unmanaged(newmem);
|
return create_unmanaged(newmem);
|
||||||
}
|
}
|
||||||
|
|
||||||
value object::remove(const rexy::string_base<char>& key){
|
value object::remove(const rexy::string_view& key){
|
||||||
RJP_value* removed = rjp_remove_member_by_key(m_value, key.get());
|
RJP_value* removed = rjp_remove_member_by_key(m_value, key.get());
|
||||||
return create_managed(removed);
|
return create_managed(removed);
|
||||||
}
|
}
|
||||||
@ -103,7 +103,7 @@ namespace rjp{
|
|||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
void object::destroy(const rexy::string_base<char>& key){
|
void object::destroy(const rexy::string_view& key){
|
||||||
rjp_free_member_by_key(m_value, key.get());
|
rjp_free_member_by_key(m_value, key.get());
|
||||||
}
|
}
|
||||||
void object::destroy(value&& val){
|
void object::destroy(value&& val){
|
||||||
@ -134,12 +134,12 @@ namespace rjp{
|
|||||||
object::size_type object::size(void)const{
|
object::size_type object::size(void)const{
|
||||||
return rjp_num_members(m_value);
|
return rjp_num_members(m_value);
|
||||||
}
|
}
|
||||||
value object::search(const rexy::string_base<char>& key)const{
|
value object::search(const rexy::string_view& key)const{
|
||||||
RJP_value* result = rjp_search_member(m_value, key.get());
|
RJP_value* result = rjp_search_member(m_value, key.get());
|
||||||
return create_unmanaged(result);
|
return create_unmanaged(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
RJP_value* object::add_member_impl(const rexy::string_base<char>& key){
|
RJP_value* object::add_member_impl(const rexy::string_view& key){
|
||||||
return rjp_new_member(m_value, key.get(), key.length());
|
return rjp_new_member(m_value, key.get(), key.length());
|
||||||
}
|
}
|
||||||
RJP_value* object::add_member_impl(string&& key){
|
RJP_value* object::add_member_impl(string&& key){
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
namespace rjp{
|
namespace rjp{
|
||||||
|
|
||||||
string_val::string_val(const rexy::string_base<char>& str):
|
string_val::string_val(const rexy::string_view& str):
|
||||||
value(rjp_new_string(str.get(), str.length()), true){}
|
value(rjp_new_string(str.get(), str.length()), true){}
|
||||||
string_val::string_val(string&& str):
|
string_val::string_val(string&& str):
|
||||||
value(rjp_new_string_steal(str.get(), str.length()), true)
|
value(rjp_new_string_steal(str.get(), str.length()), true)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user