Bitcoin Core 28.99.0
P2P Digital Currency
|
Data structure storing a fee and size, ordered by increasing fee/size. More...
#include <feefrac.h>
Public Member Functions | |
constexpr | FeeFrac () noexcept |
Construct an IsEmpty() FeeFrac. More... | |
constexpr | FeeFrac (int64_t f, int32_t s) noexcept |
Construct a FeeFrac with specified fee and size. More... | |
constexpr | FeeFrac (const FeeFrac &) noexcept=default |
constexpr FeeFrac & | operator= (const FeeFrac &) noexcept=default |
bool | IsEmpty () const noexcept |
Check if this is empty (size and fee are 0). More... | |
void | operator+= (const FeeFrac &other) noexcept |
Add fee and size of another FeeFrac to this one. More... | |
void | operator-= (const FeeFrac &other) noexcept |
Subtract fee and size of another FeeFrac from this one. More... | |
Static Public Member Functions | |
static std::pair< int64_t, uint32_t > | MulFallback (int64_t a, int32_t b) noexcept |
Fallback version for Mul (see below). More... | |
Public Attributes | |
int64_t | fee |
int32_t | size |
Static Public Attributes | |
static constexpr auto | Mul = MulFallback |
Friends | |
FeeFrac | operator+ (const FeeFrac &a, const FeeFrac &b) noexcept |
Sum fee and size. More... | |
FeeFrac | operator- (const FeeFrac &a, const FeeFrac &b) noexcept |
Subtract both fee and size. More... | |
bool | operator== (const FeeFrac &a, const FeeFrac &b) noexcept |
Check if two FeeFrac objects are equal (both same fee and same size). More... | |
std::weak_ordering | FeeRateCompare (const FeeFrac &a, const FeeFrac &b) noexcept |
Compare two FeeFracs just by feerate. More... | |
bool | operator<< (const FeeFrac &a, const FeeFrac &b) noexcept |
Check if a FeeFrac object has strictly lower feerate than another. More... | |
bool | operator>> (const FeeFrac &a, const FeeFrac &b) noexcept |
Check if a FeeFrac object has strictly higher feerate than another. More... | |
std::strong_ordering | operator<=> (const FeeFrac &a, const FeeFrac &b) noexcept |
Compare two FeeFracs. More... | |
void | swap (FeeFrac &a, FeeFrac &b) noexcept |
Swap two FeeFracs. More... | |
Data structure storing a fee and size, ordered by increasing fee/size.
The size of a FeeFrac cannot be zero unless the fee is also zero.
FeeFracs have a total ordering, first by increasing feerate (ratio of fee over size), and then by decreasing size. The empty FeeFrac (fee and size both 0) sorts last. So for example, the following FeeFracs are in sorted order:
A FeeFrac is considered "better" if it sorts after another, by this ordering. All standard comparison operators (<=>, ==, !=, >, <, >=, <=) respect this ordering.
The FeeRateCompare, and >> and << operators only compare feerate and treat equal feerate but different size as equivalent. The empty FeeFrac is neither lower or higher in feerate than any other.
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprdefaultnoexcept |
|
inlinenoexcept |
|
inlinestaticnoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
staticconstexpr |