Line data Source code
1 : #ifndef FEEDPARSERESULT_H
2 : #define FEEDPARSERESULT_H
3 :
4 : #include <memory>
5 :
6 : #include <QString>
7 :
8 : #include "FeedParseError.h"
9 :
10 : class RawFeed;
11 :
12 : class FeedParseResult {
13 : public:
14 : static FeedParseResult success(std::shared_ptr<RawFeed> feed);
15 : static FeedParseResult failure(FeedParseError error, const QString& detail = {});
16 :
17 200 : bool ok() const { return _error == FeedParseError::None; }
18 : FeedParseError error() const { return _error; }
19 : QString errorDetail() const { return _errorDetail; }
20 112 : std::shared_ptr<RawFeed> feed() const { return _feed; }
21 : explicit operator bool() const { return ok(); }
22 :
23 : private:
24 : FeedParseResult() = default;
25 :
26 : FeedParseError _error = FeedParseError::None;
27 : QString _errorDetail;
28 : std::shared_ptr<RawFeed> _feed;
29 : };
30 :
31 : #endif // FEEDPARSERESULT_H
|