diff options
Diffstat (limited to 'lib/verb_query.h')
| -rw-r--r-- | lib/verb_query.h | 34 |
1 files changed, 34 insertions, 0 deletions
| diff --git a/lib/verb_query.h b/lib/verb_query.h new file mode 100644 index 0000000..24f5732 --- /dev/null +++ b/lib/verb_query.h | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | #ifndef VERB_QUERY_H_34E5A679 | ||
| 2 | #define VERB_QUERY_H_34E5A679 | ||
| 3 | |||
| 4 | namespace verbly { | ||
| 5 | |||
| 6 | class verb_query { | ||
| 7 | public: | ||
| 8 | verb_query(const data& _data); | ||
| 9 | |||
| 10 | verb_query& limit(int _limit); | ||
| 11 | verb_query& random(); | ||
| 12 | verb_query& except(const verb& _word); | ||
| 13 | verb_query& rhymes_with(const word& _word); | ||
| 14 | verb_query& has_pronunciation(); | ||
| 15 | |||
| 16 | verb_query& has_frames(); | ||
| 17 | |||
| 18 | std::list<verb> run() const; | ||
| 19 | |||
| 20 | const static int unlimited = -1; | ||
| 21 | |||
| 22 | private: | ||
| 23 | const data& _data; | ||
| 24 | int _limit = unlimited; | ||
| 25 | bool _random = false; | ||
| 26 | std::list<std::string> _rhymes; | ||
| 27 | std::list<verb> _except; | ||
| 28 | bool _has_prn = false; | ||
| 29 | bool _has_frames = false; | ||
| 30 | }; | ||
| 31 | |||
| 32 | }; | ||
| 33 | |||
| 34 | #endif /* end of include guard: VERB_QUERY_H_34E5A679 */ | ||
