#ifndef RFL_PARSING_SCHEMAFUL_SHAREDPTRREADER_HPP_ #define RFL_PARSING_SCHEMAFUL_SHAREDPTRREADER_HPP_ #include #include #include "../../Result.hpp" #include "../Parser_base.hpp" namespace rfl::parsing::schemaful { template struct SharedPtrReader { static Result> read( const R& _r, const size_t _index, const typename R::InputVarType& _var) noexcept { if (_index == 1) { return std::shared_ptr(); } return Parser, ProcessorsType>::read(_r, _var) .transform([](T&& _t) { return std::make_shared(std::move(_t)); }); } }; } // namespace rfl::parsing::schemaful #endif