libcamera: value_node: Add mutable children accessors
Add two at() functions that return mutable pointer to child nodes, based on an index for lists and a key for dictionaries. The API differs from const children accessors that use operator[] and return a reference in order to allow better error handling: while the const accessors return a reference to a global instance of an empty ValueNode when the requested child doesn't exist, a mutable accessor can't do the same without allowing modifying the empty global instance. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> Reviewed-by: Isaac Scott <isaac.scott@ideasonboard.com>
This commit is contained in:
@@ -230,9 +230,11 @@ public:
|
||||
ConstDictAdapter asDict() const { return ConstDictAdapter{ list_ }; }
|
||||
ConstListAdapter asList() const { return ConstListAdapter{ list_ }; }
|
||||
|
||||
ValueNode *at(std::size_t index);
|
||||
const ValueNode &operator[](std::size_t index) const;
|
||||
|
||||
bool contains(std::string_view key) const;
|
||||
ValueNode *at(std::string_view key);
|
||||
const ValueNode &operator[](std::string_view key) const;
|
||||
|
||||
ValueNode *add(std::unique_ptr<ValueNode> &&child);
|
||||
|
||||
Reference in New Issue
Block a user