3#include <xrpl/basics/CountedObject.h>
4#include <xrpl/protocol/Asset.h>
5#include <xrpl/protocol/SField.h>
6#include <xrpl/protocol/STBase.h>
7#include <xrpl/protocol/Serializer.h>
24 template <AssetType A>
32 template <Val
idIssueType TIss>
36 template <Val
idIssueType TIss>
41 value() const noexcept;
49 [[nodiscard]]
std::
string
66 friend constexpr
std::weak_ordering
72 friend constexpr
std::weak_ordering
77 copy(
std::
size_t n,
void* buf) const override;
79 move(
std::
size_t n,
void* buf) override;
94template <Val
idIssueType TIss>
98 return asset_.holds<TIss>();
101template <Val
idIssueType TIss>
107 return std::get<TIss>(
asset_);
146 return lhs.
asset_ <=> rhs;
constexpr TIss const & get() const
A currency issued by an account.
void add(Serializer &s) const override
friend constexpr bool operator==(STIssue const &lhs, STIssue const &rhs)
STIssue & operator=(STIssue const &rhs)=default
bool isDefault() const override
friend constexpr std::weak_ordering operator<=>(STIssue const &lhs, STIssue const &rhs)
friend class detail::STVar
STIssue(STIssue const &rhs)=default
SerializedTypeID getSType() const override
void setIssue(Asset const &issue)
STBase * copy(std::size_t n, void *buf) const override
json::Value getJson(JsonOptions) const override
std::string getText() const override
STBase * move(std::size_t n, void *buf) override
bool isEquivalent(STBase const &t) const override
value_type const & value() const noexcept
JSON (JavaScript Object Notation).
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Issue const & xrpIssue()
Returns an asset specifier that represents XRP.
Issue issueFromJson(json::Value const &v)
bool isConsistent(Asset const &asset)
XRPL_NO_SANITIZE_ADDRESS void Throw(Args &&... args)
Note, should be treated as flags that can be | and &.