package Ġapp . soft work . routing compose Ċ Ċ import Ġandroidx . compose . runtime .* Ċ import Ġkotlinx . uuid .* Ċ Ċ public Ġclass ĠNav Builder Ġinternal Ġconstructor ( private Ġval Ġnode : ĠRoute Node ) Ġ{ ĊĊĠĠĠ Ġ@ Route Builder DSL ĊĠĠĠ Ġpublic Ġfun Ġroute ( ĊĠĠĠĠĠĠĠ Ġroute : ĠString , ĊĠĠĠĠĠĠĠ Ġnested Route : ĠNav Builder . () Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Node Ġ= ĠConstant Route Node ( route ) ĊĠĠĠĠĠĠĠ ĠNav Builder ( child Node ). apply Ġ{ Ġnested Route () Ġ} ĊĠĠĠĠĠĠĠ Ġnode . children Ġ+= Ġchild Node ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Route Builder DSL ĊĠĠĠ Ġpublic Ġfun Ġstring Route ( nested Route : ĠNav Builder .( Lazy < String >) Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Node Ġ= ĠString Route Node () ĊĠĠĠĠĠĠĠ ĠNav Builder ( child Node ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnested Route ( lazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild Node . variable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnode . children Ġ+= Ġchild Node ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Content Builder DSL ĊĠĠĠ Ġpublic Ġfun Ġstring ( content : Ġ@ Composable Ġ( String ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Node Ġ= ĠString Content Node (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . content Ġ= Ġcontent ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnode . children Ġ+= Ġchild Node ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Route Builder DSL ĊĠĠĠ Ġpublic Ġfun Ġint Route ( nested Route : ĠNav Builder .( Lazy < Int >) Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Node Ġ= ĠInt Route Node () ĊĠĠĠĠĠĠĠ ĠNav Builder ( child Node ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnested Route ( lazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild Node . variable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnode . children Ġ+= Ġchild Node ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Content Builder DSL ĊĠĠĠ Ġpublic Ġfun Ġint ( content : Ġ@ Composable Ġ( Int ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Node Ġ= ĠInt Content Node (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . content Ġ= Ġcontent ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnode . children Ġ+= Ġchild Node ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Route Builder DSL ĊĠĠĠ Ġpublic Ġfun Ġuuid Route ( nested Route : ĠNav Builder .( Lazy < UUID >) Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Node Ġ= ĠUUID Route Node () ĊĠĠĠĠĠĠĠ ĠNav Builder ( child Node ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnested Route ( lazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild Node . variable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnode . children Ġ+= Ġchild Node ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Content Builder DSL ĊĠĠĠ Ġpublic Ġfun Ġuuid ( content : Ġ@ Composable Ġ( UUID ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Node Ġ= ĠUUID Content Node (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . content Ġ= Ġcontent ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnode . children Ġ+= Ġchild Node ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Content Builder DSL ĊĠĠĠ Ġpublic Ġfun Ġno Match ( content : Ġ@ Composable Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnode . children Ġ+= ĠSimple Content Node (). apply Ġ{ Ġthis . content Ġ= Ġcontent Ġ} ĊĠĠĠ Ġ} Ċ } Ċ