user101040: There is enumeration called FeeReason. What is it? What is its use cases?
/* Enumeration of reason for returned fee estimate */
enum class FeeReason {
    NONE,
    HALF_ESTIMATE,
    FULL_ESTIMATE,
    DOUBLE_ESTIMATE,
    CONSERVATIVE,
    MEMPOOL_MIN,
    PAYTXFEE,
    FALLBACK,
    REQUIRED,
};


user48884: It is used to report back to callers into the fee estimation functions to learn why the returned feerate was chosen. Descriptions for these reasons are:
static const std::map<FeeReason, std::string> fee_reason_strings = {
    {FeeReason::NONE, "None"},
    {FeeReason::HALF_ESTIMATE, "Half Target 60% Threshold"},
    {FeeReason::FULL_ESTIMATE, "Target 85% Threshold"},
    {FeeReason::DOUBLE_ESTIMATE, "Double Target 95% Threshold"},
    {FeeReason::CONSERVATIVE, "Conservative Double Target longer horizon"},
    {FeeReason::MEMPOOL_MIN, "Mempool Min Fee"},
    {FeeReason::PAYTXFEE, "PayTxFee set"},
    {FeeReason::FALLBACK, "Fallback fee"},
    {FeeReason::REQUIRED, "Minimum Required Fee"},
};


101040: <p><a href="https://github.com/bitcoin/bitcoin/blob/master/src/policy/fees.h#L44" rel="nofollow noreferrer">There</a> is enumeration called <code>FeeReason</code>. What is it? What is its use cases?</p>
<pre><code>/* Enumeration of reason for returned fee estimate */
enum class FeeReason {
    NONE,
    HALF_ESTIMATE,
    FULL_ESTIMATE,
    DOUBLE_ESTIMATE,
    CONSERVATIVE,
    MEMPOOL_MIN,
    PAYTXFEE,
    FALLBACK,
    REQUIRED,
};
</code></pre>
 48884: <p>It is used to report back to callers into the fee estimation functions to learn why the returned feerate was chosen. Descriptions for these reasons are:</p>
<pre><code>static const std::map&lt;FeeReason, std::string&gt; fee_reason_strings = {
    {FeeReason::NONE, &quot;None&quot;},
    {FeeReason::HALF_ESTIMATE, &quot;Half Target 60% Threshold&quot;},
    {FeeReason::FULL_ESTIMATE, &quot;Target 85% Threshold&quot;},
    {FeeReason::DOUBLE_ESTIMATE, &quot;Double Target 95% Threshold&quot;},
    {FeeReason::CONSERVATIVE, &quot;Conservative Double Target longer horizon&quot;},
    {FeeReason::MEMPOOL_MIN, &quot;Mempool Min Fee&quot;},
    {FeeReason::PAYTXFEE, &quot;PayTxFee set&quot;},
    {FeeReason::FALLBACK, &quot;Fallback fee&quot;},
    {FeeReason::REQUIRED, &quot;Minimum Required Fee&quot;},
};
</code></pre>
