Update rexylib

This commit is contained in:
rexy712 2022-05-21 12:36:26 -07:00
parent 5c261ed7ed
commit 01f48a394d
4 changed files with 25 additions and 25 deletions

View File

@ -75,13 +75,13 @@ namespace rjp{
object& operator=(object&&) = default;
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);
detail::set_to_underlying<std::decay_t<Val>>(newmem, t);
return create_unmanaged(newmem);
}
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);
if constexpr(std::is_same<std::decay_t<Val>,rjp::array>::value)
set_array_value(newmem);
@ -93,11 +93,11 @@ namespace rjp{
detail::set_to_underlying<std::decay_t<Val>>(newmem, 0);
return create_unmanaged(newmem);
}
member<string_val> add(const rexy::string_base<char>& key, const RJP_string&);
member<string_val> add(const rexy::string_base<char>& 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_base<char>& key, const rexy::string_base<char>&);
member<string_val> add(const rexy::string_base<char>& key, string&&);
member<string_val> add(const rexy::string_view& key, const RJP_string&);
member<string_val> add(const rexy::string_view& key, RJP_string&&);
member<string_val> add(const rexy::string_view& key, const char*, RJP_index len = 0);
member<string_val> add(const rexy::string_view& key, const rexy::string_view&);
member<string_val> add(const rexy::string_view& key, string&&);
template<class Val>
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, RJP_string&&);
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&&);
value remove(const rexy::string_base<char>& key);
value remove(const rexy::string_view& key);
value& remove(value& val);
void destroy(const rexy::string_base<char>& key);
void destroy(const rexy::string_view& key);
void destroy(value&& val);
bool has_child(const value&);
@ -142,10 +142,10 @@ namespace rjp{
size_type size(void)const;
value search(const rexy::string_base<char>& key)const;
value search(const rexy::string_view& key)const;
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);
};

View File

@ -20,7 +20,7 @@
#define RJP_STRING_VAL_HPP
#include <rjp.h>
#include <rexy/string_base.hpp>
#include <rexy/string.hpp>
#include "string.hpp"
#include "value.hpp"
@ -32,7 +32,7 @@ namespace rjp{
using underlying_type = RJP_string;
public:
using value::value;
string_val(const rexy::string_base<char>& str);
string_val(const rexy::string_view& str);
string_val(string&& str);
string_val(void);
string_val(const value& val);

View File

@ -39,27 +39,27 @@ namespace rjp{
if(rjp_value_type(m_value) != rjp_json_object)
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_set_string(newmem, s.value, s.length);
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_set_string_steal(newmem, s.value, s.length);
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_set_string(newmem, s, len);
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_set_string(newmem, s.get(), s.length());
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());
auto len = s.length();
rjp_set_string_steal(newmem, s.release(), len);
@ -81,7 +81,7 @@ namespace rjp{
rjp_set_string(newmem, s, len);
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_set_string(newmem, s.get(), s.length());
return create_unmanaged(newmem);
@ -93,7 +93,7 @@ namespace rjp{
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());
return create_managed(removed);
}
@ -103,7 +103,7 @@ namespace rjp{
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());
}
void object::destroy(value&& val){
@ -134,12 +134,12 @@ namespace rjp{
object::size_type object::size(void)const{
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());
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());
}
RJP_value* object::add_member_impl(string&& key){

View File

@ -22,7 +22,7 @@
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){}
string_val::string_val(string&& str):
value(rjp_new_string_steal(str.get(), str.length()), true)