Current section
Files
Jump to
Current section
Files
src/outkeep@checklist.erl
-module(outkeep@checklist).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([decode/1]).
-export_type([checklist/0]).
-type checklist() :: {checklist,
binary(),
boolean(),
boolean(),
list(outkeep@checklist_item:checklist_item()),
birl:time(),
birl:time()}.
-spec time_from_usec(gleam@dynamic:dynamic_()) -> {ok, birl:time()} |
{error, list(gleam@dynamic:decode_error())}.
time_from_usec(Dyn) ->
_pipe = Dyn,
_pipe@1 = gleam@dynamic:int(_pipe),
gleam@result:map(_pipe@1, fun birl:from_unix_micro/1).
-spec decode(gleam@dynamic:dynamic_()) -> {ok, checklist()} |
{error, list(gleam@dynamic:decode_error())}.
decode(Dyn) ->
_pipe = Dyn,
(gleam@dynamic:decode6(
fun(Field@0, Field@1, Field@2, Field@3, Field@4, Field@5) -> {checklist, Field@0, Field@1, Field@2, Field@3, Field@4, Field@5} end,
gleam@dynamic:field(<<"title"/utf8>>, fun gleam@dynamic:string/1),
gleam@dynamic:field(<<"isArchived"/utf8>>, fun gleam@dynamic:bool/1),
gleam@dynamic:field(<<"isTrashed"/utf8>>, fun gleam@dynamic:bool/1),
gleam@dynamic:field(
<<"listContent"/utf8>>,
gleam@dynamic:list(fun outkeep@checklist_item:decode/1)
),
gleam@dynamic:field(
<<"createdTimestampUsec"/utf8>>,
fun time_from_usec/1
),
gleam@dynamic:field(
<<"userEditedTimestampUsec"/utf8>>,
fun time_from_usec/1
)
))(_pipe).