github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/web/elm/src/FetchResult.elm (about) 1 module FetchResult exposing 2 ( FetchResult(..) 3 , changedFrom 4 , map 5 , withDefault 6 ) 7 8 9 type FetchResult a 10 = None 11 | Cached a 12 | Fetched a 13 14 15 value : FetchResult a -> Maybe a 16 value result = 17 case result of 18 None -> 19 Nothing 20 21 Cached cachedValue -> 22 Just cachedValue 23 24 Fetched fetchedValue -> 25 Just fetchedValue 26 27 28 withDefault : a -> FetchResult a -> a 29 withDefault default = 30 value >> Maybe.withDefault default 31 32 33 map : (a -> b) -> FetchResult a -> FetchResult b 34 map fn result = 35 case result of 36 None -> 37 None 38 39 Cached cachedValue -> 40 Cached (fn cachedValue) 41 42 Fetched fetchedValue -> 43 Fetched (fn fetchedValue) 44 45 46 changedFrom : FetchResult a -> FetchResult a -> Bool 47 changedFrom oldResult newResult = 48 case ( oldResult, newResult ) of 49 ( Fetched old, Fetched new ) -> 50 old /= new 51 52 ( Cached old, Cached new ) -> 53 old /= new 54 55 ( Cached old, Fetched new ) -> 56 old /= new 57 58 ( None, Cached _ ) -> 59 True 60 61 ( None, Fetched _ ) -> 62 True 63 64 _ -> 65 False