/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġandroidx . compose . runtime . internal Ċ Ċ import Ġandroidx . compose . runtime . Compose Compiler Api Ċ import Ġandroidx . compose . runtime . Internal Compose Api Ċ import Ġandroidx . compose . runtime . Mutable State Ċ import Ġandroidx . compose . runtime . State Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ Ċ /** Ċ Ġ* ĠThis Ġannotation Ġis Ġapplied Ġto Ġfunctions Ġon Ġthe ĠLive Literal Ġclasses Ġcreated Ġby Ġthe ĠCompose Ċ Ġ* ĠCompiler . ĠIt Ġis Ġintended Ġto Ġbe Ġused Ġto Ġprovide Ġinformation Ġuseful Ġto Ġtool ing . Ċ Ġ* Ċ Ġ* Ġ@ param Ġkey ĠThe Ġunique Ġidentifier Ġfor Ġthe Ġliteral . Ċ Ġ* Ġ@ param Ġoffset ĠThe Ġstart Offset Ġof Ġthe Ġliteral Ġin Ġthe Ġsource Ġfile Ġat Ġthe Ġtime Ġof Ġcompilation . Ċ Ġ*/ Ċ @ Compose Compiler Api Ċ @ Retention ( Annotation Retention . BINARY ) Ċ annotation Ġclass ĠLive Literal Info ( ĊĠĠĠ Ġval Ġkey : ĠString , ĊĠĠĠ Ġval Ġoffset : ĠInt Ċ ) Ċ Ċ /** Ċ Ġ* ĠThis Ġannotation Ġis Ġapplied Ġto ĠLive Literal Ġclasses Ġby Ġthe ĠCompose ĠCompiler . ĠIt Ġis Ġintended Ġto Ċ Ġ* Ġbe Ġused Ġto Ġprovide Ġinformation Ġuseful Ġto Ġtool ing . Ċ Ġ* Ċ Ġ* Ġ@ param Ġfile ĠThe Ġfile Ġpath Ġof Ġthe Ġfile Ġthe Ġassociate ĠLive L iterals Ġclass Ġwas Ġproduced Ġfor Ċ Ġ*/ Ċ @ Compose Compiler Api Ċ @ Retention ( Annotation Retention . BINARY ) Ċ annotation Ġclass ĠLive Literal FileInfo ( ĊĠĠĠ Ġval Ġfile : ĠString Ċ ) Ċ Ċ private Ġval Ġlive Literal Cache Ġ= ĠHashMap < String , ĠMutable State < Any ? >>() Ċ Ċ @ Internal Compose Api Ċ fun Ġ< T > Ġlive Literal ( key : ĠString , Ġvalue : ĠT ): ĠState < T > Ġ{ ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġreturn Ġlive Literal Cache . get Or Put ( key ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmutable State Of < Any ? >( value ) ĊĠĠĠ Ġ} Ġas ĠState < T > Ċ } Ċ Ċ @ Internal Compose Api Ċ fun Ġupdate Live Literal Value ( key : ĠString , Ġvalue : ĠAny ?) Ġ{ ĊĠĠĠ Ġvar Ġneed ToUpdate Ġ= Ġtrue ĊĠĠĠ Ġval Ġstate Obj Ġ= Ġlive Literal Cache . get Or Put ( key ) Ġ{ ĊĠĠĠĠĠĠĠ Ġneed ToUpdate Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġmutable State Of < Any ? >( value ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( need ToUpdate ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstate Obj . value Ġ= Ġvalue ĊĠĠĠ Ġ} Ċ }