pub struct NciMeasurement {
pub entity_code: String,
pub nci_percentage: Decimal,
pub method: NciMeasurementMethod,
pub acquisition_date_fair_value: Option<Decimal>,
pub nci_share_net_assets: Decimal,
pub nci_share_profit: Decimal,
pub total_nci: Decimal,
}Expand description
Non-controlling interest measurement for a subsidiary.
Captures the NCI share of net assets and current-period profit/loss,
computed from the subsidiary’s nci_percentage in SubsidiaryRelationship.
v5.2: extended with an explicit method field plus an optional
acquisition_date_fair_value carrying the IFRS 3 § 19 acquisition-
date measurement. When method == FullGoodwill the
acquisition_date_fair_value is the IFRS 3.19(a) NCI fair-value
figure used for total NCI; when Proportionate it can still be
recorded for disclosure purposes but does not flow into total_nci.
Fields§
§entity_code: StringEntity code of the subsidiary carrying an NCI.
nci_percentage: DecimalNCI percentage (= 100 − parent ownership percentage).
method: NciMeasurementMethodIFRS 3 § 19 acquisition-date NCI measurement method. Defaults
to Proportionate (matches the v5.0–v5.1 behaviour of
NciMeasurement::compute).
acquisition_date_fair_value: Option<Decimal>Acquisition-date NCI fair value per IFRS 3.19(a). Required to
be Some(fv) when method == FullGoodwill; optional otherwise
(carried for disclosure even under the Proportionate method).
NCI share of the subsidiary’s net assets at period-end.
NCI share of the subsidiary’s net income/(loss) for the period.
total_nci: DecimalTotal NCI recognised in the consolidated balance sheet. Under
Proportionate this equals nci_share_net_assets; under
FullGoodwill this equals
acquisition_date_fair_value + Σ(nci_share_profit − nci_dividends)
— the acquisition-date fair value rolled forward. v5.2: full-
goodwill rollforward is computed by callers passing prior-period
activity into Self::compute_with_method; the NCI rollforward
in datasynth-group::aggregate::nci already handles the
period-by-period activity.
Implementations§
Source§impl NciMeasurement
impl NciMeasurement
Sourcepub fn compute(
entity_code: String,
nci_percentage: Decimal,
net_assets: Decimal,
net_income: Decimal,
) -> Self
pub fn compute( entity_code: String, nci_percentage: Decimal, net_assets: Decimal, net_income: Decimal, ) -> Self
Compute NCI measurement using the v5.0 simplified path —
Proportionate method, no acquisition-date fair value
recorded. Equivalent to
compute_with_method(.., Proportionate, None, ..).
§Arguments
entity_code— entity code of the subsidiary.nci_percentage— NCI percentage (0–100).net_assets— subsidiary net assets at period-end (before NCI split).net_income— subsidiary net income/(loss) for the period.
Sourcepub fn compute_with_method(
entity_code: String,
nci_percentage: Decimal,
net_assets: Decimal,
net_income: Decimal,
method: NciMeasurementMethod,
acquisition_date_fair_value: Option<Decimal>,
) -> Self
pub fn compute_with_method( entity_code: String, nci_percentage: Decimal, net_assets: Decimal, net_income: Decimal, method: NciMeasurementMethod, acquisition_date_fair_value: Option<Decimal>, ) -> Self
Compute NCI measurement with an explicit IFRS 3 § 19 method and (for the full-goodwill path) the acquisition-date fair value.
§Arguments
entity_code— entity code of the subsidiary.nci_percentage— NCI percentage (0–100).net_assets— subsidiary net assets at period-end (before NCI split).net_income— subsidiary net income/(loss) for the period.method— IFRS 3.19 measurement choice.acquisition_date_fair_value— required whenmethod == FullGoodwill; ignored otherwise (other than being recorded for disclosure). PassNonefor proportionate method when no fair-value disclosure is needed.
Under Proportionate: total_nci = nci_share_net_assets.
Under FullGoodwill: total_nci = acquisition_date_fair_value
(caller’s responsibility to roll forward across periods using
the crate::aggregate::nci::compute_nci_rollforward path in
datasynth-group). When FullGoodwill is requested without
a fair value, falls back to the proportionate calculation and
emits a tracing::warn!.
Trait Implementations§
Source§impl Clone for NciMeasurement
impl Clone for NciMeasurement
Source§fn clone(&self) -> NciMeasurement
fn clone(&self) -> NciMeasurement
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 NciMeasurement
impl Debug for NciMeasurement
Source§impl<'de> Deserialize<'de> for NciMeasurement
impl<'de> Deserialize<'de> for NciMeasurement
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>,
Auto Trait Implementations§
impl Freeze for NciMeasurement
impl RefUnwindSafe for NciMeasurement
impl Send for NciMeasurement
impl Sync for NciMeasurement
impl Unpin for NciMeasurement
impl UnsafeUnpin for NciMeasurement
impl UnwindSafe for NciMeasurement
Blanket Implementations§
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<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.