syndicate-nim/src/syndicate/protocols/gatekeeper.nim

20 lines
456 B
Nim
Raw Normal View History

import
std/typetraits, preserves, sturdy
type
2021-09-24 19:25:47 +00:00
Bind*[E] {.preservesRecord: "bind".} = ref object
`oid`*: Preserve[E]
`key`*: seq[byte]
`target`*: Preserve[E]
2021-09-24 19:25:47 +00:00
Resolve*[E] {.preservesRecord: "resolve".} = ref object
`sturdyref`*: sturdy.SturdyRef[E]
`observer`*: Preserve[E]
2021-09-24 19:25:47 +00:00
proc `$`*[E](x: Bind[E] | Resolve[E]): string =
`$`(toPreserve(x, E))
2021-09-24 19:25:47 +00:00
proc encode*[E](x: Bind[E] | Resolve[E]): seq[byte] =
encode(toPreserve(x, E))