pub struct ComplianceMonitor { /* private fields */ }Expand description
Compliance monitor
Implementations§
Source§impl ComplianceMonitor
impl ComplianceMonitor
pub fn new() -> Self
pub fn initialize(&mut self) -> Result<(), FinancialError>
Sourcepub fn add_rule(&mut self, rule: ComplianceRule)
pub fn add_rule(&mut self, rule: ComplianceRule)
Register a compliance rule. Rules are keyed by rule_id; registering
with a duplicate id replaces the prior rule.
Sourcepub fn rule_count(&self) -> usize
pub fn rule_count(&self) -> usize
Number of registered compliance rules.
Sourcepub fn check_compliance(
&mut self,
portfolio: &Portfolio,
) -> Result<ComplianceResult, FinancialError>
pub fn check_compliance( &mut self, portfolio: &Portfolio, ) -> Result<ComplianceResult, FinancialError>
Evaluate every registered compliance rule against the portfolio.
Returns a ComplianceResult with:
status: Compliantwhen every rule passes (or no rules are registered and the portfolio has no positions — an empty portfolio with no rules is trivially compliant; a non-empty portfolio with no rules isFlaggedbecause compliance was never asserted).status: NonCompliantwhen one or more rules fail.status: Flaggedwhen a rule neither clearly passes nor fails but warrants review (e.g. aCustomrule with no check).risk_score: fraction of rules that failed (0.0 = all pass, 1.0 = all fail).violations: human-readable descriptions of each failed rule.recommendations: suggested remediation per failed rule.audit_entries: one entry per evaluated rule.
Auto Trait Implementations§
impl Freeze for ComplianceMonitor
impl RefUnwindSafe for ComplianceMonitor
impl Send for ComplianceMonitor
impl Sync for ComplianceMonitor
impl Unpin for ComplianceMonitor
impl UnsafeUnpin for ComplianceMonitor
impl UnwindSafe for ComplianceMonitor
Blanket Implementations§
§impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
Aggregate shares in an MPC protocol.
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
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
Converts
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>
Converts
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