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

20 lines
460 B
Nim

import
std/typetraits, preserves, sturdy
type
Bind*[Cap] {.preservesRecord: "bind".} = object
`oid`*: Preserve[Cap]
`key`*: seq[byte]
`target`*: Cap
Resolve*[Cap] {.preservesRecord: "resolve".} = ref object
`sturdyref`*: sturdy.SturdyRef[Cap]
`observer`*: Cap
proc `$`*[Cap](x: Bind[Cap] | Resolve[Cap]): string =
`$`(toPreserve(x, Cap))
proc encode*[Cap](x: Bind[Cap] | Resolve[Cap]): seq[byte] =
encode(toPreserve(x, Cap))