diff --git a/src/at/internal/decoding.gleam b/src/at/internal/decoding.gleam new file mode 100644 index 0000000..dd9d5ea --- /dev/null +++ b/src/at/internal/decoding.gleam @@ -0,0 +1,14 @@ +// IMPORTS --------------------------------------------------------------------- + +import gleam/dynamic/decode.{type Decoder} +import gleam/option.{type Option, None, Some} + +/// +/// +pub fn optional_field( + name: String, + decoder: Decoder(a), + next: fn(Option(a)) -> Decoder(b), +) -> Decoder(b) { + decode.optional_field(name, None, decode.map(decoder, Some), next) +}