diff options
Diffstat (limited to 'src/ValueBase.cc')
| -rw-r--r-- | src/ValueBase.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/ValueBase.cc b/src/ValueBase.cc index 1e318f01..ddc11f51 100644 --- a/src/ValueBase.cc +++ b/src/ValueBase.cc @@ -64,6 +64,11 @@ SharedHandle<String> String::g(const ValueType& string) return SharedHandle<String>(new String(string)); } +SharedHandle<String> String::g(const unsigned char* data, size_t length) +{ + return SharedHandle<String>(new String(data, length)); +} + void String::accept(ValueBaseVisitor& v) const { v.visit(*this); @@ -95,11 +100,21 @@ const SharedHandle<ValueBase>& List::get(size_t index) const return list_[index]; } +void List::set(size_t index, const SharedHandle<ValueBase>& v) +{ + list_[index] = v; +} + void List::append(const SharedHandle<ValueBase>& v) { list_.push_back(v); } +void List::append(const String::ValueType& string) +{ + list_.push_back(String::g(string)); +} + List& List::operator<<(const SharedHandle<ValueBase>& v) { list_.push_back(v); |
