package Ġapp . d apk . st . matrix . http Ċ Ċ import Ġio . ktor . http .* Ċ import Ġio . ktor . http . content .* Ċ import Ġkotlinx . serialization . K Serializer Ċ import Ġkotlinx . serialization . encode ToString Ċ import Ġkotlinx . serialization . json . Json Ċ Ċ fun Ġ< T > Ġjson Body ( serializer : ĠK Serializer < T >, Ġpayload : ĠT , Ġjson : ĠJson Ġ= ĠMatrix HttpClient . json ): ĠOut going Content Ġ{ ĊĠĠĠ Ġreturn ĠEqual Text Content ( ĊĠĠĠĠĠĠĠ ĠText Content ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġjson . encode ToString ( serializer , Ġpayload ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcontentType Ġ= ĠContentType . Application . Json , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > Ġjson Body ( payload : ĠT , Ġjson : ĠJson Ġ= ĠMatrix HttpClient . json ): ĠOut going Content Ġ{ ĊĠĠĠ Ġreturn ĠEqual Text Content ( ĊĠĠĠĠĠĠĠ ĠText Content ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġjson . encode ToString ( payload ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcontentType Ġ= ĠContentType . Application . Json , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ċ } Ċ Ċ fun Ġempty Json Body (): ĠOut going Content Ġ{ ĊĠĠĠ Ġreturn ĠEqual Text Content ( Text Content (" {}", ĠContentType . Application . Json )) Ċ } Ċ Ċ class ĠEqual Text Content ( ĊĠĠĠ Ġprivate Ġval Ġtext Content : ĠText Content , Ċ ) Ġ: ĠOut going Content . ByteArray Content () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġbytes () Ġ= Ġtext Content . bytes () ĊĠĠĠ Ġoverride Ġval Ġcontent Length : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtext Content . content Length ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġtext Content . toString () ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġother Ġas ĠEqual Text Content ĊĠĠĠĠĠĠĠ Ġif Ġ(! bytes (). content Equals ( other . bytes ())) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode () Ġ= Ġbytes (). hashCode () Ċ Ċ } Ċ