Add a saturating `adjust` variant?
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 25/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Domaine
- backend
Piste de recherche
The issue proposes a saturating shift variant of adjust in the DateTime library. Start by reading the existing adjust implementation and the Duration type; decide whether saturating behavior is appropriate and how bounds should be represented. Done means the API design is agreed on and the requested variant is specified.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
While writing an app with lots of DateTime manipulations, I noticed that adjust is very annoying to use, because of the Maybe return type. I don't think this is a very practical design, similarly to how (+) :: Int -> Int -> Maybe Int wouldn't be. There is often not much you can do on failure, other than just skip the operation. Needless to say, that doesn't help with correctness.
I think that saturating semantics would make more sense. Something like this:
-- | Like `adjust`, but saturates on out-of-bounds results.
shift :: forall d. Duration d => d -> DateTime -> DateTime
shift d dt = case adjust d dt of
Nothing -> if fromDuration d > mempty then top else bottom
Just d' -> d'
Does this sound like a good idea? I can make it into a PR, but wanted to get some feedback first.
- Langage dominant
- PureScript
- Étoiles
- 51
- Forks
- 48
- Merge moyen
- 2 j 23 h
- PR mergées (30 j)
- 1
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de purescript/purescript-datetime
-
Week number of the YearOuverte
Difficulté 3/5 1-2 jours Accessibilité débutants 25/100
purescript/purescript-datetime#102 · 5 commentaires ·
-
Add constructors for Date / Time components using type-level integersPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 15/100
purescript/purescript-datetime#96 · 1 commentaire ·
-
type: documentation
Difficulté 2/5 1-3 heures Accessibilité débutants 35/100
purescript/purescript-datetime#92 · 1 commentaire ·
-
Addjust by Month, YearOuvertestatus: needs more info
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 20/100
-
type: enhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 24/100
purescript/purescript-datetime#79 · 6 commentaires · 1 réaction ·
Toutes les issues de purescript/purescript-datetime
Issues similaires
-
ManageSieve proxy: a backend's NO/BYE greeting is skipped as a capability line and reported as EOFOuvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Mend: dependency security vulnerability
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
ManageIQ/manageiq-pods#1476 ·
Les mainteneurs répondent en général sous 1 jour
-
mcp: typed tool handlers lose wrapped JSON-RPC errorsPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
modelcontextprotocol/go-sdk#1529 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
FinanceFlash/unvibecode#818 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100