package Ġfi . th ak ki . s ud ok us olver . engine . util Ċ Ċ import Ġjava . time . Duration Ċ import Ġjava . time . Instant Ċ Ċ class ĠDuration Measurement < T Ġ: ĠAny > Ġ{ ĊĊĠĠĠ Ġdata Ġclass ĠResult < T Ġ: ĠAny >( ĊĠĠĠĠĠĠĠ Ġval Ġduration : ĠDuration , ĊĠĠĠĠĠĠĠ Ġval Ġresult : ĠT ? ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġduration Of ( operation : Ġ() Ġ-> ĠT ?): ĠResult < T > Ġ= ĊĠĠĠĠĠĠĠ ĠInstant . now (). let Ġ{ Ġstarting Time Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġoperation () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult ( duration Since ( starting Time ), Ġresult ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġduration Since ( instant : ĠInstant ): ĠDuration Ġ= ĊĠĠĠĠĠĠĠ ĠDuration . between ( instant , ĠInstant . now ()) Ċ } Ċ