20#include <xrpl/basics/LocalValue.h> 
   21#include <xrpl/basics/base_uint.h> 
   22#include <xrpl/basics/hardened_hash.h> 
   23#include <xrpl/beast/hash/uhash.h> 
   24#include <xrpl/beast/utility/instrumentation.h> 
   25#include <xrpl/protocol/Feature.h> 
   26#include <xrpl/protocol/Rules.h> 
   27#include <xrpl/protocol/STVector256.h> 
   38LocalValue<std::optional<Rules>>&
 
   39getCurrentTransactionRulesRef()
 
   41    static LocalValue<std::optional<Rules>> r;
 
   49    return *getCurrentTransactionRulesRef();
 
 
   55    *getCurrentTransactionRulesRef() = std::move(r);
 
 
   77        set_.reserve(amendments.size());
 
   78        set_.insert(amendments.begin(), amendments.end());
 
 
   92        return set_.count(feature) > 0;
 
 
  104            "ripple::Rules::Impl::operator==(Impl) const : input presets do " 
 
 
  111    : impl_(
std::make_shared<
Impl>(presets))
 
 
  126    return impl_->presets();
 
 
  132    XRPL_ASSERT(
impl_, 
"ripple::Rules::enabled : initialized");
 
  134    return impl_->enabled(feature);
 
 
  142        "ripple::Rules::operator==(Rules) const : both initialized");
 
 
  151    return !(*
this == other);
 
 
  158    return rules && rules->enabled(feature);
 
 
std::unordered_set< uint256, hardened_hash<> > set_
 
Impl(std::unordered_set< uint256, beast::uhash<> > const &presets)
 
std::unordered_set< uint256, beast::uhash<> > const & presets() const
 
std::optional< uint256 > digest_
 
std::unordered_set< uint256, beast::uhash<> > const  & presets_
 
bool enabled(uint256 const &feature) const
 
bool operator==(Impl const &other) const
 
Impl(std::unordered_set< uint256, beast::uhash<> > const &presets, std::optional< uint256 > const &digest, STVector256 const &amendments)
 
Rules controlling protocol behavior.
 
std::shared_ptr< Impl const  > impl_
 
bool enabled(uint256 const &feature) const
Returns true if a feature is enabled.
 
bool operator!=(Rules const &other) const
 
bool operator==(Rules const &) const
Returns true if two rule sets are identical.
 
std::unordered_set< uint256, beast::uhash<> > const & presets() const
 
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
 
bool isFeatureEnabled(uint256 const &feature)
 
void setCurrentTransactionRules(std::optional< Rules > r)
 
static Hasher::result_type digest(void const *data, std::size_t size) noexcept
 
std::optional< Rules > const & getCurrentTransactionRules()