diff options
author | Florian Sylvestre <fsylvestre@baylibre.com> | 2022-07-22 17:16:31 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2022-07-28 13:48:54 +0300 |
commit | 02e387e7b65252a9cd15b672a87f3bcc6be26399 (patch) | |
tree | 629d7f2879364f3278781853413ecea423b06edd /include | |
parent | b4cbb5c38828de6854117a6cca8dfb65f1b365c4 (diff) |
libcamera: yaml_parser: Add getList() function
Allow to retrieve a YAML list of any already supported types in a
std::vector.
Signed-off-by: Florian Sylvestre <fsylvestre@baylibre.com>
Tested-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/libcamera/internal/yaml_parser.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/include/libcamera/internal/yaml_parser.h b/include/libcamera/internal/yaml_parser.h index 9c85d26a..78c359f7 100644 --- a/include/libcamera/internal/yaml_parser.h +++ b/include/libcamera/internal/yaml_parser.h @@ -183,6 +183,22 @@ public: return get<T>().value_or(defaultValue); } +#ifndef __DOXYGEN__ + template<typename T, + typename std::enable_if_t< + std::is_same_v<bool, T> || + std::is_same_v<double, T> || + std::is_same_v<int16_t, T> || + std::is_same_v<uint16_t, T> || + std::is_same_v<int32_t, T> || + std::is_same_v<uint32_t, T> || + std::is_same_v<std::string, T> || + std::is_same_v<Size, T>> * = nullptr> +#else + template<typename T> +#endif + std::optional<std::vector<T>> getList() const; + DictAdapter asDict() const { return DictAdapter{ list_ }; } ListAdapter asList() const { return ListAdapter{ list_ }; } |