载入中...
搜索中...
未找到
ResourceAccount.cpp
浏览该文件的文档.
32 return eve::Result<AccountNonce>::failure(invariantFailure("resource account nonce exhausted", "account"));
40 return eve::Result<ResourceId>::failure(invalidArgument("resource id must not be empty", "resource"));
53 return eve::Result<Amount>::failure(invalidArgument("resource amount must not be negative", "amount"));
59 return eve::Result<Amount>::failure(invariantFailure("resource amount addition overflowed", "amount"));
63eve::Result<ResourceCost> ResourceCost::create(std::string_view resourceId, std::int64_t amountValue) {
69 return eve::Result<ResourceCost>::failure(invalidArgument("resource cost amount must be positive", "amount"));
76 return eve::Result<CostSpec>::failure(invalidArgument("resource cost must contain at least one item", "cost"));
105 return eve::Result<CostSpec>::failure(invalidArgument("resource cost must contain at least one item", "cost"));
Strongly typed, transaction-friendly resource cost protocol.
A structured explanation of a failed, degraded, or noteworthy result.
Definition Diagnostic.h:94
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
Opaque process-local identity of the account that issued a credential.
Definition ResourceAccount.h:237
Non-negative integral quantity used by resource accounts.
Definition ResourceAccount.h:75
constexpr std::int64_t value() const noexcept
Return the native quantity at an explicit adapter boundary.
Definition ResourceAccount.h:98
eve::Result< Amount > checkedAdd(Amount other) const
Add two quantities with overflow checking.
Definition ResourceAccount.cpp:57
static eve::Result< Amount > from(std::int64_t value)
Validate and construct an amount.
Definition ResourceAccount.cpp:51
static eve::Result< CostSpec > from(std::initializer_list< CostInput > items)
Build a cost from string/integer pairs.
Definition ResourceAccount.cpp:103
CostSpec()=default
Construct an invalid empty cost; use create/from/single for input.
const std::vector< ResourceCost > & items() const noexcept
Return canonical items as a read-only borrowed view.
Definition ResourceAccount.h:185
static eve::Result< CostSpec > create(std::vector< ResourceCost > items)
Validate and canonicalize resource items.
Definition ResourceAccount.cpp:74
static eve::Result< CostSpec > single(std::string_view resource, std::int64_t amount)
Build a one-resource cost.
Definition ResourceAccount.cpp:117
static eve::Result< ResourceId > parse(std::string_view text)
Parse a resource id at a public input boundary.
Definition ResourceAccount.cpp:38
Definition ResourceAccount.cpp:9
eve::Result< AccountNonce > allocateAccountNonce()
Allocate a process-local account identity for a credential issuer.
Definition ResourceAccount.cpp:27
@ InvalidArgument
@ InvariantViolation
Convenient unvalidated input used by CostSpec::from().
Definition ResourceAccount.h:135
One positive resource and quantity pair in a canonical cost.
Definition ResourceAccount.h:118
static eve::Result< ResourceCost > create(std::string_view resourceId, std::int64_t amountValue)
Construct and validate one cost item.
Definition ResourceAccount.cpp:63