add dv::value.add(...)
This commit is contained in:
parent
464eb9989c
commit
371d714774
@ -214,6 +214,13 @@ namespace dv {
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
value& add(value v);
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
value& add(T v) {
|
||||||
|
return add(value(v));
|
||||||
|
}
|
||||||
|
|
||||||
value& operator[](const key_t& key);
|
value& operator[](const key_t& key);
|
||||||
|
|
||||||
const value& operator[](const key_t& key) const;
|
const value& operator[](const key_t& key) const;
|
||||||
@ -280,6 +287,11 @@ namespace dv::objects {
|
|||||||
const_reference operator[](std::size_t index) const {
|
const_reference operator[](std::size_t index) const {
|
||||||
return list.at(index);
|
return list.at(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
reference add(value v) {
|
||||||
|
list.push_back(std::move(v));
|
||||||
|
return list[list.size()-1];
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -336,4 +348,11 @@ namespace dv {
|
|||||||
value list(std::initializer_list<value> values) {
|
value list(std::initializer_list<value> values) {
|
||||||
return std::make_shared<objects::List>(values);
|
return std::make_shared<objects::List>(values);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
value& value::add(value v) {
|
||||||
|
if (type == value_type::list) {
|
||||||
|
return val.list->add(std::move(v));
|
||||||
|
}
|
||||||
|
throw std::runtime_error("value is not a list");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,8 +3,12 @@
|
|||||||
#include "data/dv.hpp"
|
#include "data/dv.hpp"
|
||||||
|
|
||||||
TEST(dv, dv) {
|
TEST(dv, dv) {
|
||||||
dv::value value = dv::object({
|
auto value = dv::object({
|
||||||
{"d", "test"}
|
{"d", "test"}
|
||||||
});
|
});
|
||||||
|
auto list = dv::list({
|
||||||
|
561, 52, "hello"
|
||||||
|
});
|
||||||
|
list.add("world");
|
||||||
value["a"] = 51;
|
value["a"] = 51;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user