OneOf?
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 35/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Domaine
- backend
Piste de recherche
Start by reading the existing parser alternatives and error-combination operators in the library to see whether they already provide lazy, as-needed parsing. The issue includes a proposed oneOf implementation but names no files or tests; identify the relevant entry points and tests before deciding whether a new helper is needed. Done means establishing whether the helper exists or, if it does not, adding and testing the proposed behavior.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Feels like we probably already have a oneOf function that can make sure that not all branches are evaluated at once (to ensure efficient as-needed parsing), since using alt naively can lead to really really slow decoding, but I honestly don't know where it is. Is there something I'm missing that already implements this?:
oneOf :: forall f a
. Foldable f
=> f (Foreign -> F a)
-> Foreign
-> F a
oneOf f js = go (fromFoldable f) js
where
go (read : xs) js = do
case runExcept (read js) of
Right pv -> pure pv
Left e -> do
case runExcept (go xs js) of
Right pv' -> pure pv'
Left e' -> throwError (e <> e')
go Nil _ = do
throwError $ pure (ForeignError "No more parsers to attempt in oneOf")
If not, I could PR this, but feels like it probably exists as a simple combination of some operators.
- Langage dominant
- PureScript
- Étoiles
- 64
- Forks
- 42
- Merge moyen
- 2 j 6 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.
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