package Ġde . hpi . cloud . common . types Ċ Ċ import Ġde . hpi . cloud . common . serializers . json . Enum Serializer Ċ import Ġkotlinx . serialization . Serializable Ċ Ċ @ Serializable Ċ data Ġclass ĠMark up Content ( ĊĠĠĠ Ġval Ġtype : ĠType , ĊĠĠĠ Ġval Ġcontent : ĠString Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġplain ( content : ĠString ): ĠMark up Content Ġ= ĠMark up Content ( Type . PLAIN , Ġcontent ) ĊĠĠĠĠĠĠĠ Ġfun Ġhtml ( content : ĠString ): ĠMark up Content Ġ= ĠMark up Content ( Type . HTML , Ġcontent ) ĊĠĠĠĠĠĠĠ Ġfun Ġmarkdown ( content : ĠString ): ĠMark up Content Ġ= ĠMark up Content ( Type . MARK DOWN , Ġcontent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Serializable ( with Ġ= ĠType . Serializer :: class ) ĊĠĠĠ Ġenum Ġclass ĠType ( val Ġmime : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠP LA IN (" text / plain "), ĊĠĠĠĠĠĠĠ ĠHTML (" text / html "), ĊĠĠĠĠĠĠĠ ĠMARK DOWN (" text / markdown "); ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfrom Mime ( mime : ĠString , Ġdefault : ĠType Ġ= ĠP LA IN ): ĠType Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvalues () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull Ġ{ Ġit . mime . equals ( mime , Ġignore Case Ġ= Ġtrue ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġdefault ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġobject ĠSerializer Ġ: ĠEnum Serializer < Type >( Type :: class , ĠP LA IN , Ġ{ Ġit . mime Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ