@@ -330,12 +330,27 @@ void BaseSetting<bool>::convertToArg(Args & args, const std::string & category)
330330 });
331331}
332332
333+ template <>
334+ std::list<std::filesystem::path> BaseSetting<std::list<std::filesystem::path>>::parse(const std::string & str) const
335+ {
336+ auto tokens = tokenizeString<std::list<std::string>>(str);
337+ return {tokens.begin (), tokens.end ()};
338+ }
339+
333340template <>
334341Strings BaseSetting<Strings>::parse(const std::string & str) const
335342{
336343 return tokenizeString<Strings>(str);
337344}
338345
346+ template <>
347+ void BaseSetting<std::list<std::filesystem::path>>::appendOrSet(std::list<std::filesystem::path> newValue, bool append)
348+ {
349+ if (!append)
350+ value.clear ();
351+ value.insert (value.end (), std::make_move_iterator (newValue.begin ()), std::make_move_iterator (newValue.end ()));
352+ }
353+
339354template <>
340355void BaseSetting<Strings>::appendOrSet(Strings newValue, bool append)
341356{
@@ -344,6 +359,14 @@ void BaseSetting<Strings>::appendOrSet(Strings newValue, bool append)
344359 value.insert (value.end (), std::make_move_iterator (newValue.begin ()), std::make_move_iterator (newValue.end ()));
345360}
346361
362+ template <>
363+ std::string BaseSetting<std::list<std::filesystem::path>>::to_string() const
364+ {
365+ return concatStringsSep (" " , value | std::views::transform ([](const auto & p) {
366+ return p.string ();
367+ }) | std::ranges::to<std::list<std::string>>());
368+ }
369+
347370template <>
348371std::string BaseSetting<Strings>::to_string() const
349372{
@@ -477,6 +500,7 @@ template class BaseSetting<long long>;
477500template class BaseSetting <unsigned long long >;
478501template class BaseSetting <bool >;
479502template class BaseSetting <std::string>;
503+ template class BaseSetting <std::list<std::filesystem::path>>;
480504template class BaseSetting <Strings>;
481505template class BaseSetting <StringSet>;
482506template class BaseSetting <StringMap>;
0 commit comments