Add a saturating `adjust` variant?
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Domínio
- backend
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- PureScript
- Estrelas
- 51
- Forks
- 48
- Merge médio
- 2d 23h
- PRs com merge (30d)
- 1
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de purescript/purescript-datetime
-
Week number of the YearAberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 25/100
purescript/purescript-datetime#102 · 5 comentários ·
-
Add constructors for Date / Time components using type-level integersTalvez livre de novo Um pull request para esta issue foi fechado sem ser mesclado. Aberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 15/100
purescript/purescript-datetime#96 · 1 comentário ·
-
type: documentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 35/100
purescript/purescript-datetime#92 · 1 comentário ·
-
Addjust by Month, YearAbertastatus: needs more info
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 20/100
-
type: enhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 24/100
purescript/purescript-datetime#79 · 6 comentários · 1 reação ·
Todas as issues de purescript/purescript-datetime
Issues semelhantes
-
ManageSieve proxy: a backend's NO/BYE greeting is skipped as a capability line and reported as EOFAbertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
Mend: dependency security vulnerability
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
ManageIQ/manageiq-pods#1476 ·
Mantenedores costumam responder em até 1 dia
-
mcp: typed tool handlers lose wrapped JSON-RPC errorsTalvez livre de novo Um pull request para esta issue foi fechado sem ser mesclado. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
modelcontextprotocol/go-sdk#1529 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
FinanceFlash/unvibecode#818 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100