@@ -15,22 +15,25 @@ namespace jinja2
1515class ITemplateImpl ;
1616class TemplateEnv ;
1717template <typename CharT> class TemplateImpl ;
18- using ParseResult = nonstd::expected<void , ErrorInfo>;
19- using ParseResultW = nonstd::expected<void , ErrorInfoW>;
18+ template <typename U>
19+ using Result = nonstd::expected<U, ErrorInfo>;
20+ template <typename U>
21+ using ResultW = nonstd::expected<U, ErrorInfoW>;
2022
2123class Template
2224{
2325public:
24- Template (TemplateEnv* env = nullptr );
26+ Template () : Template(nullptr ) {}
27+ explicit Template (TemplateEnv* env);
2528 ~Template ();
2629
27- ParseResult Load (const char * tpl, std::string tplName = std::string());
28- ParseResult Load (const std::string& str, std::string tplName = std::string());
29- ParseResult Load (std::istream& stream, std::string tplName = std::string());
30- ParseResult LoadFromFile (const std::string& fileName);
30+ Result< void > Load (const char * tpl, std::string tplName = std::string());
31+ Result< void > Load (const std::string& str, std::string tplName = std::string());
32+ Result< void > Load (std::istream& stream, std::string tplName = std::string());
33+ Result< void > LoadFromFile (const std::string& fileName);
3134
32- void Render (std::ostream& os, const ValuesMap& params);
33- std::string RenderAsString (const ValuesMap& params);
35+ Result< void > Render (std::ostream& os, const ValuesMap& params);
36+ Result< std::string> RenderAsString (const ValuesMap& params);
3437
3538private:
3639 std::shared_ptr<ITemplateImpl> m_impl;
@@ -41,16 +44,17 @@ class Template
4144class TemplateW
4245{
4346public:
44- TemplateW (TemplateEnv* env = nullptr );
47+ TemplateW () : TemplateW(nullptr ) {}
48+ explicit TemplateW (TemplateEnv* env);
4549 ~TemplateW ();
4650
47- ParseResultW Load (const wchar_t * tpl, std::string tplName = std::string());
48- ParseResultW Load (const std::wstring& str, std::string tplName = std::string());
49- ParseResultW Load (std::wistream& stream, std::string tplName = std::string());
50- ParseResultW LoadFromFile (const std::string& fileName);
51+ ResultW< void > Load (const wchar_t * tpl, std::string tplName = std::string());
52+ ResultW< void > Load (const std::wstring& str, std::string tplName = std::string());
53+ ResultW< void > Load (std::wistream& stream, std::string tplName = std::string());
54+ ResultW< void > LoadFromFile (const std::string& fileName);
5155
52- void Render (std::wostream& os, const ValuesMap& params);
53- std::wstring RenderAsString (const ValuesMap& params);
56+ ResultW< void > Render (std::wostream& os, const ValuesMap& params);
57+ ResultW< std::wstring> RenderAsString (const ValuesMap& params);
5458
5559private:
5660 std::shared_ptr<ITemplateImpl> m_impl;
0 commit comments