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; 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);
}; };

View File

@ -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);

View File

@ -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){

View File

@ -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)