pub struct CguImpairmentTest {
pub cgu_id: String,
pub test_date: NaiveDate,
pub allocated_goodwill: Decimal,
pub other_carrying: Decimal,
pub fair_value_less_costs: Decimal,
pub value_in_use: Decimal,
pub currency: String,
}Expand description
Annual CGU-level goodwill impairment test under IAS 36 § 10.
Inputs to the test are the CGU’s carrying amount (including allocated goodwill + the other assets of the unit), and the recoverable amount components — fair value less costs of disposal and value in use. IAS 36 § 18 says recoverable = max of the two.
Fields§
§cgu_id: StringCGU being tested.
test_date: NaiveDatePeriod-end test date (IAS 36 § 10 — at least annually).
allocated_goodwill: DecimalTotal goodwill allocated to this CGU at test date. Always
non-negative. Sum of the
GoodwillAllocation::goodwill_amount entries that land
on this CGU, net of prior-period impairment that reduced the
allocated goodwill (IAS 36 § 124 prohibits reversal of
goodwill impairments).
other_carrying: DecimalCarrying amount of the other assets of the CGU (everything except the allocated goodwill) immediately before this test. Always non-negative.
fair_value_less_costs: DecimalFair value of the CGU less costs of disposal at the test date.
value_in_use: DecimalValue in use of the CGU at the test date (typically the present value of the next 5 years of net cash flows + a terminal value, discounted at the WACC).
currency: StringGroup presentation currency.
Implementations§
Source§impl CguImpairmentTest
impl CguImpairmentTest
Sourcepub fn run(&self) -> CguImpairmentResult
pub fn run(&self) -> CguImpairmentResult
Run the IAS 36 § 18 / § 104 test, producing a
CguImpairmentResult. Pure function — no I/O, no global
state.
- Carrying total =
allocated_goodwill + other_carrying. - Recoverable amount =
max(fair_value_less_costs, value_in_use). - Total loss =
max(0, carrying − recoverable). - Allocation (IAS 36 § 104): first to goodwill (capped at
allocated_goodwill), then the residual to other assets.
Trait Implementations§
Source§impl Clone for CguImpairmentTest
impl Clone for CguImpairmentTest
Source§fn clone(&self) -> CguImpairmentTest
fn clone(&self) -> CguImpairmentTest
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 CguImpairmentTest
impl Debug for CguImpairmentTest
Source§impl<'de> Deserialize<'de> for CguImpairmentTest
impl<'de> Deserialize<'de> for CguImpairmentTest
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 CguImpairmentTest
impl PartialEq for CguImpairmentTest
Source§fn eq(&self, other: &CguImpairmentTest) -> bool
fn eq(&self, other: &CguImpairmentTest) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for CguImpairmentTest
impl Serialize for CguImpairmentTest
impl StructuralPartialEq for CguImpairmentTest
Auto Trait Implementations§
impl Freeze for CguImpairmentTest
impl RefUnwindSafe for CguImpairmentTest
impl Send for CguImpairmentTest
impl Sync for CguImpairmentTest
impl Unpin for CguImpairmentTest
impl UnsafeUnpin for CguImpairmentTest
impl UnwindSafe for CguImpairmentTest
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>
impl<T> Scalar for T
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.