pub struct ComptrollerSurfaceReport {
pub schema: String,
pub generated_at: u64,
pub filters: OperatorReportQuery,
pub exposure_positions: Vec<ExposureLedgerCurrencyPosition>,
pub decision_summary: ComptrollerDecisionSummary,
pub settlement_reconciliation: SettlementReconciliationSummary,
pub budget_utilization: BudgetUtilizationSummary,
pub source_refs: ComptrollerSurfaceSourceRefs,
pub execution_nonce_ref: Option<String>,
pub hold_ref: Option<String>,
}Expand description
Unified spend/exposure contract: a projection over OperatorReport + ExposureLedgerReport.
Fields§
§schema: String§generated_at: u64§filters: OperatorReportQuery§exposure_positions: Vec<ExposureLedgerCurrencyPosition>§decision_summary: ComptrollerDecisionSummary§settlement_reconciliation: SettlementReconciliationSummary§budget_utilization: BudgetUtilizationSummary§source_refs: ComptrollerSurfaceSourceRefs§execution_nonce_ref: Option<String>Reserved for future execution-nonce linkage; omitted until a later schema revision to avoid a governance-gated schema bump.
hold_ref: Option<String>Reserved for future hold linkage; omitted until a later schema revision.
Implementations§
Source§impl ComptrollerSurfaceReport
impl ComptrollerSurfaceReport
Sourcepub fn from_parts(
operator: &OperatorReport,
exposure: &ExposureLedgerReport,
) -> Self
pub fn from_parts( operator: &OperatorReport, exposure: &ExposureLedgerReport, ) -> Self
Compose the projection from the already-built operator + exposure read models.
Sourcepub fn validate_consistency(&self) -> Result<(), String>
pub fn validate_consistency(&self) -> Result<(), String>
Fail-closed single-domain invariant over the credit exposure positions.
Within each currency position, outstanding holds (reserved + pending) must not exceed the governed exposure ceiling. A ceiling of 0 means “no governed ceiling” and is skipped (fail-safe). This is a credit-domain-only check; it does NOT cross into kernel budget cost units, whose unit mapping to exposure units is undefined.
Trait Implementations§
Source§impl Clone for ComptrollerSurfaceReport
impl Clone for ComptrollerSurfaceReport
Source§fn clone(&self) -> ComptrollerSurfaceReport
fn clone(&self) -> ComptrollerSurfaceReport
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ComptrollerSurfaceReport
impl Debug for ComptrollerSurfaceReport
Source§impl<'de> Deserialize<'de> for ComptrollerSurfaceReport
impl<'de> Deserialize<'de> for ComptrollerSurfaceReport
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for ComptrollerSurfaceReport
impl PartialEq for ComptrollerSurfaceReport
Source§impl Serialize for ComptrollerSurfaceReport
impl Serialize for ComptrollerSurfaceReport
impl StructuralPartialEq for ComptrollerSurfaceReport
Auto Trait Implementations§
impl Freeze for ComptrollerSurfaceReport
impl RefUnwindSafe for ComptrollerSurfaceReport
impl Send for ComptrollerSurfaceReport
impl Sync for ComptrollerSurfaceReport
impl Unpin for ComptrollerSurfaceReport
impl UnsafeUnpin for ComptrollerSurfaceReport
impl UnwindSafe for ComptrollerSurfaceReport
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more