Comment implémenter un décodeur qui s'appelle lui-même en raison de l'un de ses champs ayant le même type?Comment implémenter un décodeur qui s'appelle lui-même en raison de l'un de ses champs ayant le même type?
providerDecoder : Decoder JsonProvider
providerDecoder =
Decode.map6 JsonProvider
(field "Profile" profileDecoder)
(field "Topics" <| Decode.list topicDecoder)
(field "Links" <| linksDecoder)
(field "RecentLinks" <| Decode.list linkDecoder)
(field "Subscriptions" <| Decode.list providerDecoder)
(field "Followers" <| Decode.list providerDecoder)
Les lignes suivantes sont à l'origine des problèmes:
(field "Subscriptions" <| Decode.list providerDecoder)
(field "Followers" <| Decode.list providerDecoder)
providerDecoder
est directement défini en termes de lui-même, ce qui provoque une infinie
En conclusion, je ne sais pas comment pour résoudre cette erreur tout en préservant le type JsonProvider.
Annexe:
type JsonProvider
= JsonProvider
{ profile : JsonProfile
, topics : List JsonTopic
, links : JsonLinks
, recentLinks : List JsonLink
, subscriptions : List JsonProvider
, followers : List JsonProvider
}