@@ -238,29 +238,51 @@ pub fn update_route(model: Model, route: uri.Uri) {
238238 route . Home | route . NotFound -> # ( model , effect . none ( ) )
239239 route . Search ( q : , packages : ) -> {
240240 let packages = {
241- use # ( package , version ) <- list . map ( packages )
241+ use # ( package , ver ) <- list . map ( packages )
242242 use <- bool . guard (
243- when : version != "latest" ,
244- return : version . Package ( package , version , resolved : True ) ,
243+ when : ver != "latest" ,
244+ return : version . Package (
245+ name : package ,
246+ version : ver ,
247+ status : version . Found ( ver ) ,
248+ ) ,
245249 )
246250 case dict . get ( model . packages_versions , package ) {
247251 // We didn't index it yet
248- Error ( _ ) -> version . Package ( package , version , resolved : False )
252+ Error ( _ ) ->
253+ version . Package (
254+ name : package ,
255+ version : ver ,
256+ status : version . Loading ,
257+ )
249258 // We tried but we could not find it
250- Ok ( None ) -> version . Package ( package , version , resolved : True )
259+ Ok ( None ) ->
260+ version . Package (
261+ name : package ,
262+ version : ver ,
263+ status : version . NotFound ,
264+ )
251265 // We found the packages
252266 Ok ( Some ( hex_package ) ) -> {
253267 case hex_package . releases {
254- [ ] -> version . Package ( package , version , resolved : True )
268+ [ ] ->
269+ version . Package (
270+ name : package ,
271+ version : ver ,
272+ status : version . NotFound ,
273+ )
255274 [ release , .. ] ->
256- version . Package ( package , release . version , resolved : True )
275+ version . Package (
276+ name : package ,
277+ version : ver ,
278+ status : version . Found ( release . version ) ,
279+ )
257280 }
258281 }
259282 }
260283 }
261284
262- let latest =
263- list . filter ( packages , fn ( p ) { p . version == "latest" && ! p . resolved } )
285+ let latest = list . filter ( packages , fn ( p ) { p . status == version . Loading } )
264286
265287 let model =
266288 Model ( .. model , search_input : q , search_packages_filters : packages )
@@ -417,9 +439,13 @@ fn extract_packages_filters_or_fetches(model: Model) {
417439 let is_existing_package = list . contains ( model . packages , package )
418440 use <- bool . guard ( when : ! is_existing_package , return : acc )
419441 case version {
420- Some ( version ) -> # (
442+ Some ( ver ) -> # (
421443 [
422- version . Package ( name : package , version : version , resolved : True ) ,
444+ version . Package (
445+ name : package ,
446+ version : ver ,
447+ status : version . Found ( ver ) ,
448+ ) ,
423449 .. filters
424450 ] ,
425451 packages_to_fetch ,
@@ -436,7 +462,11 @@ fn extract_packages_filters_or_fetches(model: Model) {
436462 let ver = release . version
437463 # (
438464 [
439- version . Package ( name : package , version : ver , resolved : True ) ,
465+ version . Package (
466+ name : package ,
467+ version : ver ,
468+ status : version . Found ( ver ) ,
469+ ) ,
440470 .. filters
441471 ] ,
442472 packages_to_fetch ,
0 commit comments