1#include <xrpl/protocol/SField.h>
3#include <xrpl/beast/utility/instrumentation.h>
25template <
class... Args>
27 :
SField(pat,
std::forward<Args>(args)...)
35#pragma push_macro("UNTYPED_SFIELD")
37#pragma push_macro("TYPED_SFIELD")
40#define UNTYPED_SFIELD(sfName, stiSuffix, fieldValue, ...) \
41 SField const sfName( \
45 std::string_view(#sfName).substr(2).data(), \
47#define TYPED_SFIELD(sfName, stiSuffix, fieldValue, ...) \
48 SF_##stiSuffix const sfName( \
52 std::string_view(#sfName).substr(2).data(), \
63#include <xrpl/protocol/detail/sfields.macro>
66#pragma pop_macro("TYPED_SFIELD")
68#pragma pop_macro("UNTYPED_SFIELD")
88 "xrpl::SField::SField(tid,fv,fn,meta,signing) : fieldCode is unique");
91 "xrpl::SField::SField(tid,fv,fn,meta,signing) : fieldName is unique");
108 "xrpl::SField::SField(fc,fn) : fieldCode is unique");
122 return *(it->second);
150 return *(it->second);
static SField const & getField(int fieldCode)
static IsSigning const kNotSigning
std::string const fieldName
static std::unordered_map< std::string, SField const * > knownNameToField
static constexpr auto kSmdNever
json::StaticString const jsonName
SerializedTypeID const fieldType
static std::unordered_map< int, SField const * > knownCodeToField
static int compare(SField const &f1, SField const &f2)
SField(SField const &)=delete
IsSigning const signingField
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
SField const kSfHash(access, STI_UINT256, 257, "hash")
static SField::PrivateAccessTagT access
SField const kSfIndex(access, STI_UINT256, 258, "index")
int fieldCode(SerializedTypeID id, int index)
PrivateAccessTagT()=default
TypedField(PrivateAccessTagT pat, Args &&... args)