package Ġru . f om enk ov . plugin . task Ċ Ċ abstract Ġclass ĠTask < I , ĠO >( private Ġval Ġinput : ĠI ) Ġ{ ĊĊĠĠĠ Ġabstract Ġfun Ġbody (): ĠO ĊĊĠĠĠ Ġfun Ġrun () Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠ ĠResult . Complete ( body ()) ĊĠĠĠ Ġ} Ġcatch Ġ( error : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ ĠResult . Error ( error ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ sealed Ġclass ĠResult < T > Ġ{ ĊĠĠĠ Ġdata Ġclass ĠComplete < T >( val Ġoutput : ĠT ) Ġ: ĠResult < T >() ĊĠĠĠ Ġdata Ġclass ĠError ( val Ġerror : ĠThrowable ) Ġ: ĠResult < Nothing >() Ċ }