20#include <xrpl/protocol/SField.h>
41template <
class... Args>
51#pragma push_macro("UNTYPED_SFIELD")
53#pragma push_macro("TYPED_SFIELD")
56#define UNTYPED_SFIELD(sfName, stiSuffix, fieldValue, ...) \
57 SField const sfName( \
61 std::string_view(#sfName).substr(2).data(), \
63#define TYPED_SFIELD(sfName, stiSuffix, fieldValue, ...) \
64 SF_##stiSuffix const sfName( \
68 std::string_view(#sfName).substr(2).data(), \
79#include <xrpl/protocol/detail/sfields.macro>
82#pragma pop_macro("TYPED_SFIELD")
84#pragma pop_macro("UNTYPED_SFIELD")
99 , signingField(signing)
100 , jsonName(fieldName.c_str())
107 , fieldType(STI_UNKNOWN)
109 , fieldMeta(sMD_Never)
112 , jsonName(fieldName.c_str())
124 return *(it->second);
SField(SField const &)=delete
static std::map< int, SField const * > knownCodeToField
std::string const fieldName
static IsSigning const notSigning
static SField const & getField(int fieldCode)
static int compare(SField const &f1, SField const &f2)
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
SField const sfIndex(access, STI_UINT256, 258, "index")
static SField::private_access_tag_t access
int field_code(SerializedTypeID id, int index)
SField const sfHash(access, STI_UINT256, 257, "hash")
private_access_tag_t()=default
TypedField(private_access_tag_t pat, Args &&... args)