Gemy
09/30/2023, 6:39 PMprivate val lWeatherListState = WeatherScreenModel.weatherList.state
private val lEveryWeatherItem = lWeatherListState compose Prism<Lce<String, List<WeatherItemModel>>, Lce.Content<List<WeatherItemModel>>>(
getOption = { (it as? Lce.Content<List<WeatherItemModel>>).toOption() },
reverseGet = { it }
).value().every(Every.list())
Here I want to further focus.. on items after `every``
But all I found was an index function.. is there a way? Or is there something missing? I've tried the docs but it didn't cover that part.Alejandro Serrano.Mena
10/01/2023, 6:37 AMindex
(in arrow.optics.dsl). You can find examples in the arrow-kt.io website, under Immutable Data > Optionals > Indexed collectionsGemy
10/01/2023, 7:33 AMindex
Alejandro Serrano.Mena
10/02/2023, 11:09 AMFold
in that way (getting them is easy, not sure what "setting" means in this case)Gemy
10/02/2023, 11:17 AMAlejandro Serrano.Mena
10/02/2023, 11:37 AMGemy
10/02/2023, 11:59 AMEvery
?Alejandro Serrano.Mena
10/02/2023, 12:02 PMFold
may focus on more than one elementGemy
10/02/2023, 12:04 PMAlejandro Serrano.Mena
10/02/2023, 12:05 PMGemy
10/02/2023, 12:09 PMAlejandro Serrano.Mena
10/02/2023, 12:11 PMGemy
10/02/2023, 12:13 PMAlejandro Serrano.Mena
10/02/2023, 12:14 PMGemy
10/02/2023, 12:14 PMAlejandro Serrano.Mena
10/02/2023, 12:19 PMlceContent
separately,
val lceContent: Prism<...> = Prism(
getOption = ...
reverseGet = ...
)
and then define
val <A> Optional<A, Lce<String, List<WeatherItemModel>>.lceContent: Optional<A, Lce.Content<List<WeatherItemModel>>> = this compose lceContent
so you can write
lWeatherListState.lceContent.value().every(Every.list())...
Gemy
10/02/2023, 12:20 PM