pub struct TaxClearingHouse { /* private fields */ }Expand description
Multi-jurisdiction “Information Banking” tax clearing house.
Holds the active regional schemas and clears transaction line items to
per-jurisdiction net liabilities, applying the correct regional schema per item
— the jurisdiction-aware clearing the resilience-economics scope calls for. It
derives mutable liabilities over immutable transaction quins without polluting the
graph. Cold-path config (heap, consistent with TaxRuleSchema).
Implementations§
Source§impl TaxClearingHouse
impl TaxClearingHouse
pub fn new() -> Self
Sourcepub fn with_schema(self, schema: TaxRuleSchema) -> Self
pub fn with_schema(self, schema: TaxRuleSchema) -> Self
Register a jurisdiction schema (builder style).
Sourcepub fn with_standard_schemas() -> Self
pub fn with_standard_schemas() -> Self
A clearing house pre-loaded with the standard AU-GST / EU-VAT / US-sales / zero-rated schemas.
Sourcepub fn clear_item(
&self,
jurisdiction_id: &str,
category: &str,
amount: f64,
) -> f64
pub fn clear_item( &self, jurisdiction_id: &str, category: &str, amount: f64, ) -> f64
Clear one line item: apply the matching jurisdiction’s schema (0 if the jurisdiction is unknown — fail-safe, never guesses a foreign rate).
Sourcepub fn clear_batch(&self, items: &[TaxLineItem<'_>]) -> ClearingResult
pub fn clear_batch(&self, items: &[TaxLineItem<'_>]) -> ClearingResult
Clear a batch of line items into per-jurisdiction net liabilities + grand net.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TaxClearingHouse
impl RefUnwindSafe for TaxClearingHouse
impl Send for TaxClearingHouse
impl Sync for TaxClearingHouse
impl Unpin for TaxClearingHouse
impl UnsafeUnpin for TaxClearingHouse
impl UnwindSafe for TaxClearingHouse
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>,
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
§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>
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