Leka
A low-latency C++20 price-time-priority limit order book and matching engine
▶ Replay viewer
Loading...
Searching...
No Matches
quantity.hpp
1#ifndef QUANTITY_HPP
2#define QUANTITY_HPP
3#include <cstdint>
4#include <compare>
5
6namespace lob {
7/** @brief Type-safe unsigned order quantity; zero represents a filled state. */
8class Quantity {
9 private:
10 std::uint64_t quantity;
11
12 public:
13 /** Constructs a zero quantity. */
14 Quantity(): quantity(0){}
15
16 /** Constructs a quantity from its numeric value. */
17 Quantity(std::uint64_t quantity): quantity(quantity){}
18
19 /** Returns the underlying numeric quantity. */
20 std::uint64_t getQuantity() const { return quantity;};
21
22 /** Returns whether the quantity is valid for a submitted order. */
23 bool isValid() const {
24 return quantity != 0;
25 };
26
27 /** Compares quantities by numeric value. */
28 auto operator<=>(const Quantity &other) const = default;
29 /** Adds quantities while preserving the Quantity type. */
30 Quantity operator+(const Quantity &other) const {
31 return Quantity{this->quantity + other.quantity};
32 };
33
34};
35} // namespace lob
36#endif
Quantity()
Constructs a zero quantity.
Definition quantity.hpp:14
bool isValid() const
Returns whether the quantity is valid for a submitted order.
Definition quantity.hpp:23
Quantity(std::uint64_t quantity)
Constructs a quantity from its numeric value.
Definition quantity.hpp:17
Quantity operator+(const Quantity &other) const
Adds quantities while preserving the Quantity type.
Definition quantity.hpp:30
std::uint64_t getQuantity() const
Returns the underlying numeric quantity.
Definition quantity.hpp:20
auto operator<=>(const Quantity &other) const =default
Compares quantities by numeric value.