Great write up! Thank you very much for sharing your experience with us.
I cached two errors when trying your code in Ellie.
individualDecoder : Decoder Individual
(\id species name owner -> Individual id species name owner)
(Decode.field "id" Decode.int)
(Decode.field "species" Decode.string)
(Decode.field "name" Decode.string)
(Decode.maybe <| Decode.field "owner" Decode.int)
addIfPet : Individual -> Dict Int (List Pet) -> Dict Int (List Pet)
addIfPet individual petsCaredFor =
case pet individual of
Just newPet ->
case individual.owner of
Just ownerid ->
Dict.update ownerid (Just << addOrInit newPet) petsCaredFor
I made the change accordingly in my Ellie and print some debug info on screen to visualize the decoding and converting process
Amazing, thank you! Would you be okay if I linked your Ellie instead of mine from the post? I'll attribute it to you of course!
Sure, That's totally fine. I'm glad it helped.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.