diff options
| author | 2025-02-09 06:05:05 +0100 | |
|---|---|---|
| committer | 2025-02-09 06:05:05 +0100 | |
| commit | 6fcb5ca46927f7baab744e117af9eb1ce5b74838 (patch) | |
| tree | 803b14b1315dfed095705d0c417b19c970541535 /src/libparser/node/roundnode.h | |
| parent | b8486f92408afa1a0c71d3f62d93f49ac8bebc60 (diff) | |
| download | OneRoll-6fcb5ca46927f7baab744e117af9eb1ce5b74838.tar.gz OneRoll-6fcb5ca46927f7baab744e117af9eb1ce5b74838.zip | |
[Dice] add functions: floor, ceil, round
Diffstat (limited to 'src/libparser/node/roundnode.h')
| -rw-r--r-- | src/libparser/node/roundnode.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/libparser/node/roundnode.h b/src/libparser/node/roundnode.h new file mode 100644 index 0000000..0bf49b7 --- /dev/null +++ b/src/libparser/node/roundnode.h @@ -0,0 +1,31 @@ +#ifndef ROUNDNODE_H +#define ROUNDNODE_H + +#include "executionnode.h" +#include "scalarresult.h" + +class RoundNode : public ExecutionNode +{ +public: + enum Mode { + FLOOR, + CEIL, + ROUND + }; + RoundNode(Mode mode); + + // ExecutionNode interface +public: + void run(ExecutionNode *previous); + QString toString(bool withLabel) const; + qint64 getPriority() const; + ExecutionNode *getCopy() const; + void setCommand(ExecutionNode* cmd); + +private: + std::unique_ptr<ScalarResult> m_scalarResult; + ExecutionNode* m_cmd= nullptr; + Mode m_mode{ROUND}; +}; + +#endif // ROUNDNODE_H |