Skip to content

Instantly share code, notes, and snippets.

@anacrolix
Created March 25, 2017 21:30
Show Gist options
  • Save anacrolix/99556345bd716f3ac5c0de2884af42e4 to your computer and use it in GitHub Desktop.
Save anacrolix/99556345bd716f3ac5c0de2884af42e4 to your computer and use it in GitHub Desktop.
module StaleUpdater exposing (..)
type alias StaleUpdater =
{ stale : Bool
, updating : Bool
}
new : StaleUpdater
new =
{ stale = False
, updating = False
}
setStale : StaleUpdater -> StaleUpdater
setStale su =
{ su | stale = True }
startingUpdate : StaleUpdater -> StaleUpdater
startingUpdate su =
{ updating = True, stale = False }
needUpdate : StaleUpdater -> Bool
needUpdate su =
su.stale && not su.updating
updatedOk : StaleUpdater -> StaleUpdater
updatedOk su =
{ su | updating = False }
updateFailed : StaleUpdater -> StaleUpdater
updateFailed su =
{ stale = True, updating = False }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment