deser/helpers

Types

DateTimeWith = object
  format*: string

Deserialize and serialize DateTime as string of your format.

Example:

type User = object
  created {.deserWith(DateTimeWith(format: "yyyy-MM-dd")).}: DateTime

  Source   Edit
UnixTimeFormat = object

Deserialize and serialize Time as unix timestamp integer.

Example:

import deser

type
  User = object
    created {.deserWith(UnixTimeFormat).}: Time

makeSerializable(User)
makeDeserializable(User)

let user = User(created: fromUnix(123))

assert user == User.fromJson("""{"created": 123}""")
assert user.toJson() == """{"created":123}"""

  Source   Edit

Procs

proc deserialize(self: DateTimeWith; deserializer: var auto): DateTime
  Source   Edit
proc deserialize(self: typedesc[UnixTimeFormat]; deserializer: var auto): Time
  Source   Edit
proc serialize(self: DateTimeWith; field: DateTime; serializer: var auto)
  Source   Edit
proc serialize(self: typedesc[UnixTimeFormat]; field: Time; serializer: var auto)
  Source   Edit