19 if (count == 0)
return {};
21 if (charged == 0 || count > std::numeric_limits<std::size_t>::max() / charged)
23 {{
"input",
"cache_policy"}, {
"reason",
"value_above_maximum"}},
24 "cache policy line geometry is not representable");
25 return {charged * count};
32 const auto rows = TradeLedger::cache_rows_for_capacity(capacity);
33 if (capacity.capacity_bytes != 0 && rows == 0)
35 {{
"input",
"cache_policy"}, {
"reason",
"value_below_minimum"}},
36 "ledger cache capacity is below one decoded entry and page pointer");
37 if (rows > TradeLedger::kMaxCacheRows)
39 {{
"input",
"cache_policy"}, {
"reason",
"value_above_maximum"}},
40 "ledger cache capacity exceeds the existing row setting range");
45 TradeLedger::cache_capacity_bytes(TradeLedger::kDefaultCacheRows)};
Base with a code: throw coded<std::invalid_argument>(code, {args}, text).
static std::size_t line_bytes(std::size_t page_size) noexcept
CacheCapacity consumed_cycle_pages
CacheCapacity trade_pages
static std::size_t ledger_cache_rows(CacheCapacity capacity)
static CacheCapacity lines(std::size_t page_size, std::size_t count)
CacheCapacity recorded_series_pages
CacheCapacity cohort_id_pages
CacheCapacity retained_sequence_pages
CacheCapacity ta_history_pages
CacheCapacity dependency_pages
CacheCapacity successor_root_pages
CacheCapacity ledger_rows
CacheCapacity projection_exit_pages
CacheCapacity erased_minima_pages
CacheCapacity exit_rank_pages
static CacheCapacity platform_command_pages() noexcept
CacheCapacity receipt_tail_pages
CacheCapacity feed_calendar_pages
CacheCapacity position_tail_pages
CacheCapacity equity_curve_pages
CacheCapacity chain_segment_pages