tiny.sql.history.segment.manifest.PageRange
Defined in history.segment.manifest.
API (12)
Actions
Public operations.
Types and contracts
Public types and contracts.
Values and defaults
Public values and defaults.
budget_pagesmaximum_increment_pagesmaximum_seconds_per_yearmaximum_segments_per_secondsegments_per_pageservice_lifetime_secondsservice_lifetime_yearsunit_precision_segments
Source
Source: lib/sql/src/history/segment/manifest.zig:16
zig
pub const PageRange = struct { pub const Count = u64; pub const unit_precision_segments: Count = 1; pub const maximum_segments_per_second: Count = segment.SegmentRange.maximum_units_per_second; pub const maximum_seconds_per_year: Count = segment.SegmentRange.maximum_seconds_per_year; pub const service_lifetime_years: Count = segment.SegmentRange.service_lifetime_years; pub const service_lifetime_seconds: Count = segment.SegmentRange.service_lifetime_seconds; pub const segments_per_page: Count = entries_per_page; pub const maximum_increment_pages: Count = 1; pub const budget_pages: Count = total( maximum_segments_per_second, service_lifetime_seconds, ).?; pub fn total(segments_per_second: Count, lifetime_seconds: Count) ?Count { const segment_count = @as(u128, unit_precision_segments) * @as(u128, segments_per_second) * @as(u128, lifetime_seconds); const page_count = if (segment_count == 0) 0 else (segment_count - 1) / @as(u128, segments_per_page) + 1; return std.math.cast(Count, page_count); } pub fn advance(current: Count, increment: Count) ?Count { if (!containsCount(current) or increment > maximum_increment_pages) { return null; } const next = std.math.add(Count, current, increment) catch return null; return if (next <= budget_pages) next else null; } pub fn containsCount(count: Count) bool { return count > 0 and count <= budget_pages; }};Audit
| Definitions | 13 |
|---|---|
| Public names | 13 |
| Members | 0 |
| Version | 26.7.0 |
| Revision | daab053ee433 |